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