作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定这是否是一个重复的问题,但如果是,请随时标记。
我正在尝试向 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 内部而不是外部,这就是我想要沿边缘以绿色实现的效果:
如何在保持圆角的同时实现这一目标?谢谢
最佳答案
您可以使用 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
因此层的子层可以扩展 View 边界以获得阴影效果。
关于ios - 如何在 CALayer 对象的外部添加阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215867/
我是一名优秀的程序员,十分优秀!