iphone - 使用 CALayers 添加蒙版

标签 iphone ios xcode quartz-graphics

我似乎在通过 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/

相关文章:

iphone - iOS 5 UIButton 标题显示省略号

ios - 从 OpenGL 移植到 MetalKit - 投影矩阵(?)问题

ios - Xcode 中的“找不到框架”

ios - XCode:用于 xcode 命令行构建的文档和库文件夹

ios - @IBDesignables - "the agent crashed"但应用程序仍然有效(大部分时间)

ios - 我是否必须升级到 Lion 才能在运行 iOS 5.1 的 iPad 上进行测试?

iphone - 如何保存创建 Core Data 对象时的日期和时间

iPhone编程: Applying Alpha to Parent but not to Child Views

ios方法参数分配全局变量

ios - 如何从小部件扩展导航到 UIKit viewController?