gpt4 book ai didi

iphone - 在 CALayer 的 mask 区域周围添加阴影

转载 作者:行者123 更新时间:2023-12-03 18:32:58 25 4
gpt4 key购买 nike

我使用 CAShapeLayer 屏蔽 CAGradientLayer,以便生成位于表格中某些行内的书签。

enter image description here

        CGMutablePathRef path = CGPathCreateMutable();
CGPathAddLines(path,
NULL,
(CGPoint[]){
CGPointMake(8, 0),
CGPointMake(22, 0),
CGPointMake(22, 22),
CGPointMake(15, 16),
CGPointMake(8, 22)
},
5);
CGPathCloseSubpath(path);

CAShapeLayer *mask = [CAShapeLayer layer];
mask.fillColor = [UIColor redColor].CGColor;
mask.bounds = CGRectMake(0, 0, 30, 30);
mask.path = path;
mask.anchorPoint = CGPointMake(0, 0);

CGPathRelease(path);

CAGradientLayer *favoriteBadge = [CAGradientLayer layer];
favoriteBadge.colors =
@[(id)[UIColor colorWithRed:.97f green:0.5f blue:0.1f alpha:1.f].CGColor, // orange
(id)[UIColor colorWithRed:1.f green:.8f blue:0.f alpha:1.f].CGColor]; // yellow
favoriteBadge.locations = @[@0.0, @1.0];
favoriteBadge.bounds = CGRectMake(0, 0, 30, 30);
favoriteBadge.anchorPoint = CGPointMake(1, 0);
favoriteBadge.position = CGPointMake(self.bounds.size.width, 0);
favoriteBadge.mask = mask;
// FIXME: This shadow is not being applied
favoriteBadge.shadowColor = [UIColor colorWithRed:.97f green:0.5f blue:0.1f alpha:1.f].CGColor;
favoriteBadge.shadowOpacity = 1.f;

这看起来太平坦了,所以我想在形状本身周围添加阴影来完成它。我尝试在图层上启用阴影,但似乎没有应用。我认为它应用于不在形状内部的区域。如何为形状本身添加阴影?

我可以复制图层,将其变暗并将其位置偏移几个像素,但是当 CoreAnimation 可以为我更有效地完成此操作时,这感觉很浪费。

最佳答案

为蒙版层创建一个容器层,并将阴影应用到该容器层。我相信这里有描述:

http://travisjeffery.com/b/2012/08/ios-how-to-mask-and-shadow-an-image/

关于iphone - 在 CALayer 的 mask 区域周围添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671613/

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