iOS关于view的maskView属性或者layer的介绍

1.原理介绍

 maskView其实用的是一个alpha颜色通道与其被遮罩的视图进行颜色绑定,渲染的还是原先视图的内容。

2.一个例子

当一个View是红色的时候,我们设置一个绿色的View为红色View的maskView,redView.maskView = greenView; 

那么最终的显示效果决定因素有哪些呢?

2.1 当前内容的显示大小由greenView控制,那么显示的内容呢?答案就是显示的内容还是redView的红色,但是显示的内容还有一个影响因素,那就是greenView(遮罩的视图)的alpha(透明度决定)现在我们给两个极端的值测试,分别是alpha = 1,和alpha= 0的时候怎么显示。
2.1.1 当greenView.alpha = 1的时候表示不透明,那么greenView的每个point的阿尔法颜色通道都是不透明的, 所以最终的显示
的视图大小为greenView的大小,但是内容是红色的

2.1.2 当greenView.alpha = 0的时候表示透明,那么greenView的每个point的阿尔法颜色通道都是透明的,所以最终的显示的视图
大小为greenView的大小,但是内容是没有的。为什么没有呢?你可以把他想象为把一个视图设置为clearColor是不是也是透明的
当然你可以将greenView的颜色设置为clearColor,最终的效果依然是和2.1.2的结果一样。
 因为clearColor的alpha = 0;
当然通过调整alpha的值最终显示的redView的模糊度会随着alpha值变化。

你可能感兴趣的:(iOS关于view的maskView属性或者layer的介绍)