我似乎在通过 CALayers 添加蒙版时遇到了困难。我只是想掩盖 UIImageView。这是我的代码:
CALayer *maskLayer = [CALayer layer];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
maskLayer.contents = mask;
UIImageView *viewToMask = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
viewToMask.image = [UIImage imageNamed:@"picture.png"];
viewToMask.layer.mask = maskLayer;
[self.view addSubview:viewToMask];
Mask.png 是黑色的,上面有一个透明的圆圈(这是屏蔽的正确方法吗?)。我不确定这是哪里失败了,也许是在 maskLayer.contents
处,因为它应该是一个 CGImageRef
但是当我将它设置为 mask 时出现错误。 CGImage
,或通过局部变量 CGImageRef = mask.CGImage
。不管怎样,现在设置的方式不会报错,所以我希望它没问题。
有谁知道发生了什么,或者如何使用 CALayers 正确设置 mask ?谢谢
最佳答案
尝试
maskLayer.contents = (id)mask.CGImage;
是的,类型转换很烂,但这是必要的。
我想你还需要说
maskLayer.bounds = (CGRect){CGPointZero, mask.size};
关于iphone - 使用 CALayers 添加蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9595479/