如何在iOS中屏蔽UIViews

子章

我见过类似的问题,但找不到可行的答案。

我想使用灰色图像遮罩UIView(需要转换为alpha比例进行遮罩)。UIView具有背景。遮罩图像应该很容易,但是我想遮罩任何UIView。

任何线索将不胜感激。

我已经在这个问题上工作了几个小时,并且有一个解决方案,我认为它将满足您的要求。首先,使用您认为合适的方式创建蒙版图像。请注意,这里我们只需要alpha值,所有其他颜色都将被忽略,因此请确保您使用的方法支持alpha值。在此示例中,我从.png文件加载,但不要与.jpg文件一起尝试,因为它们没有alpha值。

接下来,创建一个新层,将其蒙版分配给其内容,然后将此新层设置为您的UIView自己的层,如下所示:您应该发现这将遮盖UIView及其所有附加子视图:

UIImage *_maskingImage = [UIImage imageNamed:@"mask"];
CALayer *_maskingLayer = [CALayer layer];
_maskingLayer.frame = theView.bounds;
[_maskingLayer setContents:(id)[_maskingImage CGImage]];
[theView.layer setMask:_maskingLayer];

完成此操作后,您可以将UIView的背景色设置为所需的颜色,然后将使用遮罩创建彩色滤镜。

编辑:从iOS8开始,您现在可以简单地通过将另一个视图分配给它的maskView属性来遮罩一个视图。通用规则保持不变,因为maskView的alpha层用于确定应用到该视图的不透明度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章