UIVIew和CALayer的区别

1.UIView可以响应事件,CALayer不可以

UIView继承自UIResponder,在UIResponder中定义了处理各种事件的事件传递接口。而CALayer直接继承NSObject,并没有相应的处理事件接口。

2.一个CALayer的frame是由它的anchorPoint(锚点),position,bounds,和transform共同决定,而一个view的frame只是简单的返回layer的frame,同样view的center和bounds也是返回layer的一些属性。

3.UIView主要是对显示内容的管理,而CALayer主要是侧重显示内容的绘制。UIView是CALayer的CALayerDelegate。

4.每一个view内部都有一个CALayer在背后提供内容的绘制和显示,并且UIView的尺寸样式都由内部的CALayer提供,两者都有树状层级结构,layer内部有subLayers,view内部有subviews。

5.两者最明显的区别是view可以接受并处理事件,而Layer不可以。View是Layer的代理Delegate。

posted @ 2024-06-25 12:24  王彬iOS  阅读(63)  评论(0编辑  收藏  举报