zoukankan      html  css  js  c++  java
  • 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的剪切过滤。。。

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

  • 相关阅读:
    线程私有数据
    C
    Zend_Json 简介 --(手冊)
    Spring之AOP实现面向切面编程
    JDBC框架
    NYOJ15-括号匹配(二)-区间DP
    SDUTOJ 贪心 -商人小鑫
    Java 8 类型转换及改进
    java内存结构(执行时数据区域)
    Android Studio 编译Gradle提示编码错误
  • 原文地址:https://www.cnblogs.com/wangxiaoqi/p/6411887.html
Copyright © 2011-2022 走看看