1

介绍

之前我们已经讨论了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


Hydrogen
2.5k 声望73 粉丝

Write code for fun.