d11*_*wtq 9 iphone core-animation
我正在CAGradientLayer使用a 屏蔽a CAShapeLayer以生成位于表格中某些行内的书签.

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;
Run Code Online (Sandbox Code Playgroud)
这看起来太平了,所以我想用形状本身周围的阴影完成这个.我已尝试在图层上启用阴影,但似乎没有应用.我认为它被应用在不在形状内的区域.如何在形状本身添加阴影?
我可以复制图层,使图像变暗并将其位置偏移几个像素,但是当CoreAnimation可以为我更高效地执行此操作时,这会让您感到浪费.
为蒙版图层创建容器图层,并将阴影应用于容器图层.我相信它在这里描述:
http://travisjeffery.com/b/2012/08/ios-how-to-mask-and-shadow-an-image/
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |