• 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的剪切过滤。。。

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

  • 相关阅读:
    js setInterval() 用法示例
    js 判断iframe是否加载完毕
    el表达式 多条件判断
    exception java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
    oracle 存储过程 示例
    linux下小试redis demo
    关于数组的一些经常使用函数
    大话设计模式—何为设计模式
    窗口间传值的几种方法
    ncurses简单的一个多窗体程序
  • 原文地址:https://www.cnblogs.com/wangxiaoqi/p/6411887.html
Copyright © 2020-2023  润新知