首页 > 代码库 > mask层--- ios开发view圆角属性的layer层的实质

mask层--- ios开发view圆角属性的layer层的实质

今天突然领悟了之前学习的一些基础的UI属性

就是在我们设置view的圆角的时候

比方说下面的代码

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 60, 60)];
    button.layer.masksToBounds = YES;
    button.layer.cornerRadius = 30;

 这里给button设置圆角属性

以前一直这么写 知道layer是view的绘制的一层 一直这么用

今天突然领悟为什么要写masktobounds这个属性设为YES了

那么,首先说下layer 每个继承view的控件都有一个layer层  通俗点说layer层其实就是view的一个遮罩 所有的绘制都是通过layer 相当于一副画的颜料 而view则是画布 用于展示layer的容器或者说是视图  

然后今天了解到mask这个东东 原来 我们可以设置mask层来进行对layer层的遮盖  这貌似有点抽象

就是mask层 当为透明的时候 layer层就正常显示绘制的样式 

当mask层不是透明的时候放到layer的上方  这时候mask层的是什么形状 layer层就会显示什么形状的layer涂层内容 

其实也可以理解为mask相当于剪裁 或者是镜头形状等

通过不透明的mask来去掉多余出mask区域的下方的layer

所以这时候 比方说上面的button 设置为masktobounds==yes  我理解为设置了mask层并且给了自身的范围

然后通过这个mask层来过滤了layer层的多余部分 

通过设置了layer的属性 设置圆角的方法 将多余部分剪切掉  所以这时候就获得了一个圆形的button视图 其实就是layer绘制为圆形通过mask的剪切过滤。。。

 

以上是本人自己的对于这里的心得总结 如有见解意见欢迎指正交流

mask层--- ios开发view圆角属性的layer层的实质