Ben*_*tto 18 core-animation roundedcorners-dropshadow calayer uiview uiimageview
这让我很难过.我有一个UIView(称之为"父").该视图的最底层子视图是UIImageView(称为"child"),其框架占据整个"父"边界.
我想围绕"父"视图的角落,并设置投影.我CALayer像往常一样在"父母"这样做:
[[parent layer] setShadowOffset:CGSizeMake(5, 5)];
[[parent layer] setShadowRadius:6];
[[parent layer] setShadowOpacity:0.4];
[[parent layer] setCornerRadius:6];
Run Code Online (Sandbox Code Playgroud)
这会正确显示阴影,但不会使角落变圆.
这是踢球者:
看起来"子"图像视图只是模糊了"父"视图上的圆角,因为它占据了整个矩形,而基于父视图的剪切获得了角落,但也掩盖了阴影.不确定为什么#3不起作用.
我错过了什么?通过长时间盯着这个,我是否忽视了一些明显的东西?
谢谢.
(令人震惊的是,标签"roundcorners-dropshadow"已经存在.太棒了.)
Jul*_* D. 21
您将需要两个嵌套视图,内部一个设置圆角和剪切绑定,外部视图具有阴影(因此不剪切).在你的情况下,内部和外部视图可能是"child"和"parent",但我猜你没有为这些视图设置正确的剪切值?
请参阅为什么maskToBounds = YES中的答案可以防止CALayer阴影?.
通常你必须将clipsToBounds设置为圆角,但由于你想要保留阴影,你也必须绕过阴影的角.您是否尝试使用贝塞尔曲线路径设置阴影路径?将clipsToBounds/masksToBounds保持为默认值NO.就像是:
[[parent layer] setCornerRadius:6.0f];
[[parent layer] setShadowPath:
[[UIBezierPath bezierPathWithRoundedRect:[parent bounds]
cornerRadius:6.0f] CGPath]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21294 次 |
| 最近记录: |