use*_*946 12 iphone xcode quartz-graphics ios
我似乎很难通过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];
Run Code Online (Sandbox Code Playgroud)
Mask.png是黑色的,透过它穿过透明圆圈(这是掩盖的正确方法吗?).我不知道这是什么失败,也许是maskLayer.contents因为它应该是一个CGImageRef但是当我设置它时mask.CGImage,或者通过局部变量我得到错误CGImageRef = mask.CGImage.无论如何,它现在设置的方式不会出错,所以我希望它没问题.
有谁知道发生了什么,或者如何使用CALayers正确设置面具?谢谢
Lil*_*ard 19
尝试
maskLayer.contents = (id)mask.CGImage;
Run Code Online (Sandbox Code Playgroud)
是的,演员很糟糕,但这是必要的.
我想你也需要说
maskLayer.bounds = (CGRect){CGPointZero, mask.size};
Run Code Online (Sandbox Code Playgroud)
Hec*_*tor 13
试试这个:
CALayer *maskLayer = [CALayer layer];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
maskLayer.contents = (id)mask.CGImage;
// maskLayer.contentsGravity = kCAGravityCenter;
maskLayer.frame = CGRectMake(0.0, 0.0,1024,768);
UIImageView *viewToMask = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
viewToMask.image = [UIImage imageNamed:@"picture.png"];
viewToMask.layer.mask = maskLayer;
[self.view addSubview:viewToMask];
Run Code Online (Sandbox Code Playgroud)
你还需要设置遮罩框架
| 归档时间: |
|
| 查看次数: |
19705 次 |
| 最近记录: |