我不确定这是否是一个重复的问题,但请随意标记是否存在。
我试图在CALayer的外部添加阴影。我目前在CALayer中有一个UIImageView
,我已经用如图所示的圆角制作:
CALayer * l = [ImageView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:10.0];
我已尝试添加其他代码:
[l setShadowOffset:CGSizeMake(0, 3)];
[l setShadowOpacity:0.4];
[l setShadowRadius:3.0f];
[l setShouldRasterize:YES];
结果以红色显示,其中阴影在CALayer中而不是在CALayer之外,这是我希望以绿色沿着边缘实现的:
如何在保持圆角的同时实现这一目标?感谢
答案 0 :(得分:1)
您可以使用UIBazierPath
来实现此目标:
UIBezierPath *shadow = [UIBezierPath bezierPathWithRect:imageview.bounds];
imageview.layer.masksToBounds = NO;
imageview.layer.shadowColor = [UIColor redColor].CGColor;
imageview.layer.shadowOffset = CGSizeMake(0.0f, 5.0f);
imageview.layer.shadowOpacity = 0.5f;
imageview.layer.shadowPath = shadowPath.CGPath;
这里masksToBounds = NO
层的子层可以扩展阴影效果的边界。