UIView与CALayer的区别与联系
2017-02-11 21:38:14 0 举报
登录查看完整内容
UIView和CALayer都是iOS开发中常用的视图组件。UIView是用户界面的基石,它封装了显示内容、处理触摸事件等功能,而CALayer则是一个抽象层,用于绘制和管理屏幕上的图形内容。UIView是基于CALayer构建的,每个UIView内部都有一个或多个CALayer,它们共同构成了视图的层次结构。UIView负责管理其内部的CALayer,例如设置透明度、添加子视图等。同时,UIView也提供了一些与CALayer无关的功能,如布局、响应触摸等。总之,UIView和CALayer是紧密联系的,但它们的功能和职责有所不同。
作者其他创作
大纲/内容
1. 每个UIView内部都有一个CALayer在背后提供内容的绘制和显示,并且UIView的尺寸样式都由内部的Layer所提供。两者都有树状层级结构,Layer内部有SubLayers,View内部有SubViews.但是Layer比View多了个AnchorPoint.2. 在View显示的时候,UIView作为Layer的CALayerDelegate,View的显示内容由内部的CALayer显示.3. CALayer是默认修改属性支持隐式动画的,在给UIView的Layer做动画的时候,View作为Layer的代理,Layer通过actionForLayer:forKey:向View请求相应的action(动画行为).4. Layer内部维护着三份layer tree,分别是presentLayer Tree(动画树),modalLayer Tree(模型树),Render Tree(渲染树),在做iOS动画的时候,我们修改动画的属性,在动画的其实是Layer的presentLayer的属性值,而最终展示在界面上的其实是提供View的modelLayer5. 两者最明显的区别是View可以接受并处理事件
0 条评论
回复 删除
下一页