如何屏蔽 UIView
我正在开发一个应用程序,我通过代码绘制 UIView 并用 UIColor 填充它。接下来我要加载 mask.png 文件(没有透明度,只有黑白)并遮盖 UIView 以更改其视觉外观。
知道如何做到这一点吗?
I'm working on an app where I draw a UIView via code and I fill it with a UIColor. Next thing I want to load a mask.png file (no transparency, just black and white) and mask the UIView to change its visual appearance.
Any idea how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
记得导入 QuartzCore 并添加框架
这很简单,但我没有在任何地方找到答案!
Remember to import QuartzCore and add the framework
It is very easy but I didn't find the answer anywhere!
iOS 8 引入了 maskView 属性,该属性允许您使用备用视图来提供遮罩图像。在 Swift 中:
请注意,您需要提供实际上具有透明度的图像;具有白色部分(不透明)和黑色部分(透明)的图像将不起作用。
iOS 8 introduces the
maskView
property which allows you to use an alternate view to provide the mask image. In Swift:Note that you need to supply an image which actually has transparency; an image with white parts (for opaque) and black parts (for transparent) won't work.
您也许可以使用 CGContextClipToMask:
You might be able to use CGContextClipToMask:
我使用上面的代码创建了一个类别:
UIView+ImageMask.h :
UIView+ImageMask.m :
I have create a category with the code above :
UIView+ImageMask.h :
UIView+ImageMask.m :
谢谢drawonward,
最终得到了这个函数:
Thanks drawnonward,
ended up with this function:
Swift 2.0
将 UIImage 和遮罩图像传递给此函数,您将获得遮罩图像作为 UIImage。
Swift 2.0
Pass a UIImage and a mask image to this function, and you will get a masked image as a UIImage.