如何从CALayer中间切出一个形状

时间:2014-01-31 12:07:10

标签: ios objective-c core-graphics calayer

我不确定这是否可行,但我一直试图从CALayers中创建一个暂停按钮。我创建了一个圆圈,可以将暂停矩形添加到中间的精细。但是暂停线是指定的颜色,我希望它们透明,以透视背景视图。

目前我有一个自定义视图,它有一个圆形图层,然后是暂停图层。有没有办法从圆圈层切出矩形,所以无论它放在哪个视图都显示在那里

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以用透明色填充暂停矩形。

[layer setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor];

CGContextSetFillColorWithColor(cpntext, [UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor);

请参阅我使用的.7 alpha。

例如,下面的代码创建一个透明矩形

    CAShapeLayer *layer =[CAShapeLayer layer];
    [layer setFrame:CGRectMake(0, 0, 100, 100)];
    UIBezierPath *path =[UIBezierPath bezierPathWithRect:CGRectMake(20, 20, 20, 80)];

    [layer setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.7].CGColor];
    [layer setPath:path.CGPath];
    [self.view.layer addSublayer:layer];