Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIView阴影不显示_Iphone_Objective C_Ios_Ios6 - Fatal编程技术网

Iphone UIView阴影不显示

Iphone UIView阴影不显示,iphone,objective-c,ios,ios6,Iphone,Objective C,Ios,Ios6,我不确定我是否遗漏了一些东西,但一个简单的任务就是不想起作用。我正试图在ios6中的UIView中添加阴影。我使用故事板和自动布局。我正在用白色背景在故事板场景中绘制ui视图。然后将其链接到一个IBOutlet 在我的.h文件中,我声明了IBOutlet和属性 #import <UIKit/UIKit.h> @interface LoginViewController : UIViewController { IBOutlet UIView *_loginPanel;

我不确定我是否遗漏了一些东西,但一个简单的任务就是不想起作用。我正试图在
ios6
中的
UIView
中添加阴影。我使用故事板和自动布局。我正在用白色背景在故事板场景中绘制
ui视图。然后将其链接到一个
IBOutlet

在我的.h文件中,我声明了
IBOutlet
和属性

#import <UIKit/UIKit.h>

@interface LoginViewController : UIViewController {

    IBOutlet UIView *_loginPanel;

}

@property (nonatomic, retain) IBOutlet UIView *_loginPanel;

@end
@synthesize _loginPanel;
合成属性

#import <UIKit/UIKit.h>

@interface LoginViewController : UIViewController {

    IBOutlet UIView *_loginPanel;

}

@property (nonatomic, retain) IBOutlet UIView *_loginPanel;

@end
@synthesize _loginPanel;
并在我的
ViewDidLoad
方法中执行以下操作

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds];

    _loginPanel.layer.masksToBounds = NO;
    _loginPanel.layer.shadowColor = [UIColor blackColor].CGColor;
    _loginPanel.layer.shadowOpacity = 0.7f;
    _loginPanel.layer.shadowOffset = CGSizeMake(-5.0f, -5.0f);
    _loginPanel.layer.shadowRadius = 8.0f;
    _loginPanel.layer.shadowPath = path.CGPath;
    _loginPanel.layer.shouldRasterize = YES;
}
但是我没有阴影,只有我在故事板中定义的白色视图

任何帮助都将不胜感激

谢谢


理查德

也许你可以改变这一行:

UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds];
与:

CGPathRef path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds].CGPath;
然后偏离航线,移除阴影线中的“.CGPath”


也许您可以尝试在viewDidAppear方法中进行此操作,以查看是否存在调整大小的问题。

也许您可以更改此行:

UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds];
与:

CGPathRef path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds].CGPath;
然后偏离航线,移除阴影线中的“.CGPath”


也许您可以尝试在viewDidAppear方法中进行此操作,以查看是否存在大小调整问题。

您为UIView提供了出口(参考)?@spill50您的代码运行良好。我认为您的自定义视图大小比您的父视图大。否则,您的插座未连接。@如果代码工作正常,请检查您是否将插座(参考)提供给了_loginPanle。。尝试不使用
。shadowPath=path.CGPath,可能您的视图正在自动调整大小或其他…您为UIView提供了出口(参考)?@spill50您的代码工作正常。我认为您的自定义视图大小比您的父视图大。否则,您的插座未连接。@如果代码工作正常,请检查您是否将插座(参考)提供给了_loginPanle。。尝试不使用
。shadowPath=path.CGPath,可能您的视图正在自动调整大小或其他…我将其移动到ViewDidAspect方法,它可以正常工作。:)这一定与调整视图大小的约束有关。谢谢你,我觉得我快疯了。我把它移到viewdidappease方法,它就可以工作了。:)这一定与调整视图大小的约束有关。谢谢你,我以为我要发疯了。