开篇之前,我的内心是复杂的,因为CALayer和CAAnimation这两个类包含的内容实在太多了。仅仅靠一篇文章不但无法很好的了解,甚至很久以后想要回来查阅时都不好开头。
所以,我决定以关键词的方式来说明,当以后运用到相关知识的时候再根据关键词进行查阅。
PS:以下是两篇很好的文章,通读一遍也就没什么不能理解的了。我上传到我的github上。并且附带了我实践时使用的工程。
传送门:
https://github.com/chenyongMAC/CALayer-CAAnimation
一:CALayer和CAAnimation的介绍
1.CALayer:
①渲染结构
1)CALayer和UIView的区别:
CALayer:图层不会直接渲染到屏幕上
UIView:是iOS系统中界面元素的基础,所有元素继承于它,它本身由CoreAnimation来实现。它本身更像一个CALayer的管理器,一个UIView上可以有N个CALayer
②事务管理:
1)rootlayer和非root layer:
如果一个Layer对象存在对应着的View,则称这个Layer是一个Root Layer,非Root Layer一般都是通过CALayer或其子类直接创建的.下面的subLayer就是一个典型的非Root Layer,它没有对应的View对象关联着.
subLayer = [[CALayer alloc] init];
subLayer.frame = CGRectMake(0, 0, 300, 300);
subLayer.backgroundColor = [[UIColor redColor] CGColor];
[self.view.layer addSublayer:subLayer];
2)显示动画和隐式动画
所有的非Root Layer在设置Animatable Properties的时候都存在着隐式动画,默认的duration是0.25秒.
3)事务管理方式:
任何