我不确定我是否遗漏了什么,但是什么应该是一项简单的任务,只是不想工作。我正在尝试向UIView
中的iOS 6
添加投影。我正在使用故事板和自动布局。我正在故事板场景中绘制UIView
,背景为白色。然后将其链接到IBOutlet
。
在我的.h文件中,我声明了IBOutlet
和属性
#import <UIKit/UIKit.h>
@interface LoginViewController : UIViewController {
IBOutlet UIView *_loginPanel;
}
@property (nonatomic, retain) IBOutlet UIView *_loginPanel;
@end
在我的.m import QuartzCore
#import <QuartzCore/QuartzCore.h>
Synthesize
财产
@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;
}
但我只是在故事板中定义的白色UIView
没有阴影。
非常感谢任何帮助。
谢谢,
理查德
答案 0 :(得分:1)
也许你可以改变这一行:
UIBezierPath *path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds];
with:
CGPathRef path = [UIBezierPath bezierPathWithRect:_loginPanel.bounds].CGPath;
并且当然会删除shadowPath行中的“.CGPath”。
也许您可以尝试在viewDidAppear方法中进行此操作,以查看它是否不是调整大小的问题。