构成iOS控件的CALayer实际上是有三个layer的,
- model layer
- presentation layer
- render layer
1.model layer
这个层就是保持着用户设定的各种属性数据的层,也是我们经常与其交互的层。
2.presentation layer
这个层是动画执行过程中,保持中间属性值得层,这个层实际上是复制了model layer层后,根据用户设定的动画,由系统在每一帧设定了相应属性值后的层。当动画结束后,这个层会被自动移除。
只有在需要在动画期间得到视图的属性时才会需要访问这个层。
3.render layer
这个层才是真正的执行动画的层,由于这个层是Core Animation私有,并不知道这个词里到底包含着什么数据。不过有model layer和presentation layer,实际上可以得到任何所需要的数据了
所谓动画,实际上就是由model layer来设定视图的实际属性,由presentation layer来保存每帧视图的属性,由render layer来呈现给用户。