繁体   English   中英

从CALayer面罩清除吗?

[英]Clear from CALayer mask?

我有一个基础层,用透明的蒙版层蒙版。

遮罩层有一个子层,一个透明的圆圈。 效果很好,基础层被圆圈遮盖了。

但是我想用圆圈清除(清零)蒙版像素。 不满。 你能得到我想要的吗?

怎么样?


在此处输入图片说明

您可以在此处查看蒙版图像的Alpha通道。


这是一个60 fps的动画,因此我认为每帧分配实例/自定义图不是解决方案,这会降低性能。

它只能通过自定义绘图在CALAyer子类中执行(至少在iOS上,尚无任何CIFilter可以混合)。 正是我想要避免的。 :(

有很多方法,但是最简单的方法似乎是使用透明混合模式。

// Draw with Clear (!) blend mode.
CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextSetFillColorWithColor(context, self.color.CGColor);
CGContextFillPath(context);

甚至不需要任何修剪或遮罩。 也许我可以通过缓存路径渲染来提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM