iOS—UI——CALayer

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

2.在View显示的时候,UIView作为layer的CALayerDelegate,View的显示内容由内部的CALayer的display。

3.CALayer是默认修改属性支持隐式动画的,在给UIView的Layer做动画的时候,View作为Layer的代理,Layer通过actionForLayer:forKey:向View请求相应地action(动画行为)

4.Layer内部维护着三分 Layer tree,分别是presentLayer Tree(动画树),modelLayer Tree(模型树),Render Tree(渲染树),在做iOS动画的时候,我们修改动画的属性,在动画的其实是Layer的presentLayer的属性值,而最终展示在界面上的其实是提供View的modelLayer

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

 

 
posted @ 2015-11-04 15:56  CryBee  阅读(163)  评论(0编辑  收藏  举报