UIView和CALayer的区别和联系?

UIView和CALayer的区别和联系?

UIView:继承自UIResponder:NSObject ,UIResponder中定义了各种事件和事件传递的接口。视图的基类

CALayer:继承自NSObject 

UIView提供以下两个方法,来进行iOS中的事件的响应和传递

- (nullable UIView *)hitTest:(CGPoint)point withEvent:(nullable UIEvent *)event;

- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event;

区别:

UIView:可以响应事件,CALayer:不能响应事件

UIView:负责显示内容的管理  CALayer:负责显示视图的绘制

联系:

每个UIView内部都有一个CALayer在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供。两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint。

当UIView需要显示的时候,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上(CALayer上),系统将图层拷贝到屏幕上,完成UIView的显示。

UIView来自CALayer,高于CALayer,是CALayer的高层实现与封装。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,007评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,900评论 1 32
  • 转载:http://www.jianshu.com/p/18c306333080 1.UIView与CALayer...
    F麦子阅读 3,674评论 0 1
  • UIView全部API的翻译(1) UIView是iOS系统界面元素的基础,所有的界面元素都是继承于...
    Dear丶Musk阅读 4,554评论 1 1
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 9,824评论 0 11

友情链接更多精彩内容