gpt4 book ai didi

ios - 如何在 CALayer 对象的外部添加阴影?

转载 作者:行者123 更新时间:2023-11-29 01:15:43 25 4
gpt4 key购买 nike

我不确定这是否是一个重复的问题,但如果是,请随时标记。

我正在尝试向 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 内部而不是外部,这就是我想要沿边缘以绿色实现的效果:

enter image description here

如何在保持圆角的同时实现这一目标?谢谢

最佳答案

您可以使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com