我按照
为我的观点添加了一个阴影- (void)viewDidLoad{
[super viewDidLoad];
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
self.view.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.view.layer.shadowOpacity = 1.0f;
self.view.layer.shadowRadius = 4.0f;
self.view.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
}
但是,我正在获得一个没有阴影的视图,如下面的
我是否错过了途中的一些要点。请就此问题向我提出建议
答案 0 :(得分:2)
您需要将layer.masksToBounds设置为NO并将clipsToBounds设置为YES。
self.view.layer.masksToBounds = NO;
self.view.clipsToBounds = YES;
答案 1 :(得分:1)
你根本没有抵消你的影子。 尝试:
self.view.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
答案 2 :(得分:1)
对不起,这是我的愚蠢错误。我所拥有的视图结构是
view(UIView) ( in white color )
|
|
aView (UIView) ( in orange color )
我所做的是展示view
而不是aView
的阴影。刚刚更正了下面的代码
(void)viewDidLoad{
[super viewDidLoad];
self.aView.layer.shadowColor = [UIColor blackColor].CGColor;
self.aView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.aView.layer.shadowOpacity = 1.0f;
self.aView.layer.shadowRadius = 4.0f;
self.aView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
}
答案 3 :(得分:1)
使偏移量为0,将对视图产生零影响。
答案 4 :(得分:0)
你应该使偏移量具有一定的值而不是0。 例如:
self.view.layer.shadowOffset = CGSizeMake(3, -1);
以便在视图中形成阴影。
答案 5 :(得分:0)
你可以试试这个:
-(void)makeShadow
{
self.layer.shadowOpacity = 0.7f;
self.layer.shadowOffset = CGSizeMake(5.0f,3.0f);
self.layer.shadowColor =[[UIColor blackColor] CGColor];
// UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.bounds];
// layer.shadowPath = path.CGPath;
// layer.shadowRadius = 5.0f;
}
-(void)makeCornerRadius:(CGFloat)_cornerRadius
{
self.cornerRadius = _cornerRadius;
[self.layer setMasksToBounds:NO];
[self.layer setCornerRadius:_cornerRadius];
}
答案 6 :(得分:0)
确保self.clipsToBounds = NO;
答案 7 :(得分:0)
您的观点与您提供的代码无关。确保将阴影应用于正确的视图,您没有将视图遮盖到其边界,并且颜色是正确的。下面的代码显示了一个工作示例:
UIView *pointView = [[UIView alloc] initWithFrame:pointLabel.frame];
pointView.backgroundColor = [UIColor whiteColor];
pointView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
pointView.layer.shadowOffset = CGSizeMake(2.0f, 2.0f);
pointView.layer.shadowOpacity = 1.0f;
pointView.layer.shadowRadius = 5.0f;
pointView.layer.shadowPath = [UIBezierPath bezierPathWithRect:pointView.bounds].CGPath;