UIView和CALayer

UIView和CALayer的区别
1.UIView和CALayer的最大区别在于UIView可以响应用户事件,而CALyer不能,UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制
2.UIView和CALayer是相互依赖的关系。UIView依赖于CALayer提供的内容,CALayer依赖于UIView提供的容器来显示绘制的内容。
归根结底CALayer是一切的基础,如果没有CALayer,UIView自身也就不存在,UIView是一个特殊的CALayer实现,添加了响应时间的能力
3.UIView来自于CALayer,高于CALayer,是CALayer的高度实现与封装。UIView的所有特性来自于CALayer的支持

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

推荐阅读更多精彩内容