美文网首页
UIView与CALayer区别

UIView与CALayer区别

作者: Queen_BJ | 来源:发表于2020-09-03 17:26 被阅读0次
  • 创建UIView对象时,UIView内部会自动创建一个层(CALayer对象),通过UIView的layer属性可以访问这个层。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图渲染,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示

  • UIView相比CALayer最大区别是UIView继承自UIResponder,可以响应用户事件,而CALayer不可以,CALayer继承于 NSObject;UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制。

  • UIView本身,更像是一个CALayer的管理器,访问它的和绘图、坐标相关的属性,如frame,bounds等,实际上内部都是访问它所在CALayer的相关属性

  • UIView和CALayer是相互依赖的关系。UIView依赖CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容。归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer实现,添加了响应事件的能力。

  • 高级:UIView的layer树形在系统内部被系统维护着三份copy
    逻辑树:就是代码里可以操纵的,例如更改layer的属性(阴影,圆角等)就在这一份
    动画树:这是一个中间层,系统正是在这一层上更改属性,进行各种渲染操作
    显示树:这棵树的内容是当前正被显示在屏幕上的内容
    这三棵树的逻辑结构都是一样的,区别只有各自的属性

  • 常用:向UIView的layer上添加子layer,来使目标View上敷上一层黑色的透明薄膜。
    CALayer *grayCover = [[CALayer alloc]init];
    grayCover.backgroudColor = [[UIColor blackColor]colorWithAlphaComponent:0.3].CGColor;
    [self.layer addSubLayer: grayCover];

应用

CALayer 功能很强大除了基本用于边框角阴影等,在一些特效方面有很大作用比如展示控件3D效果、遮盖效果、渐变、粒子等

相关文章

  • CALayer与UIView的区别

    CALayer与UIView的区别 基础 CALayer的定义 CALayer的基础 CALayer和UIView...

  • UIView和CALayer

    问题:UIView和CALayer的区别与联系是什么?UIWindow和UIView和CALayer 的联系和区别...

  • 问题汇总

    1、UIView和CALayer区别UIView和CALayer的区别.UIView相对于CAlayer来说就多了...

  • UIView与CALayer || frame与boun

    1、UIView 与 CALayer 区别 UIView可以传递事件而CALayer无法参与事件传递,这个...

  • 图层和视图的区别

    图层就是CALayer 视图是UIView CALayer与UIView基本一一对应,但是区别在与UIView有事...

  • iOS-CALayer详解与应用

    view与layer的关系 CALayer属性表如下 CALayer和UIView的区别 UIView是UIKit...

  • ios面试总结

    UIView与CALayer的区别? UIView继承于UIResponder->NSObjectCALayer继...

  • UI事件传递&响应

    UIView与CALayer的关系与区别 UIView为CALayer提供内容,以及负责触摸等事件,参与响应链CA...

  • iOS面试题(6-10)

    6.UIView与CALayer有什么区别 UIView管理绘制与事件处理(尤其是触摸事件).CALayer完全关...

  • iOS界面渲染流程

    前言:关系图 一、UIView 和 CALayer 的区别 ([详解CALayer 和 UIView的区别和联系]...

网友评论

      本文标题:UIView与CALayer区别

      本文链接:https://www.haomeiwen.com/subject/pmznsktx.html