mask层--- ios开发view圆角属性的layer层的实质
Posted wangxiaoqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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层的实质的主要内容,如果未能解决你的问题,请参考以下文章
iOS沉思录UIImage圆角矩形的‘离屏渲染’和‘在屏渲染’实现方法
clip to bounds 和mask to bounds的区别