介绍
之前我们已经讨论了View动画和基于AutoLayout的动画,现在我们已经能熟练的运用UIView动画了,是时候挖掘一些更深层次的、更底层的、更Powerful的Core Animation API了
这章中我们将一起探索Layer层次的动画
Views vs. layers
首先我们来看看View和Layer之间的区别与联系
Layer是一个简单的类,其中只包含了几个图片属性,每一个UIView后都有一个Layer,你可以认为Layer就是View类更低的那一层,Layer与View的区别如下:
Layer是一个model对象,它包含数据属性,没有逻辑,没有复杂的AutoLayout依赖,它不处理任何用户交互。
它包含了边线、边框颜色、阴影及其位置等属性
最后,Core Animation 优化了Layer内容的缓存, 可以由GPU直接快速的绘图
View
复杂的布局体系、自动布局等
用户交互
经常包含自定义逻辑、自定义画图代码,常在CPU主线程执行
非常灵活、强大,拥有很多子类
Layer
简单的布局体系、快速的布局、绘制
不在响应链上
默认无自定义逻辑,常常由GPU直接缓存、绘制
不是很灵活,子类较少
什么时候选择Layer animation
如果选择ViewAnimation能够完成你的需求,就应当去使用View Animation,如果你需要更加灵活的、更强大的动画效果,你应该使用Layer animation
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。