iOS动画编程-Layer动画[ 1 ] Layer Animations Overview

介绍

以前咱们已经讨论了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主线程执行animation

  • 很是灵活、强大,拥有不少子类io

Layer

  • 简单的布局体系、快速的布局、绘制model

  • 不在响应链上

  • 默认无自定义逻辑,经常由GPU直接缓存、绘制

  • 不是很灵活,子类较少

何时选择Layer animation

若是选择ViewAnimation可以完成你的需求,就应当去使用View Animation,若是你须要更加灵活的、更强大的动画效果,你应该使用Layer animation

相关文章
相关标签/搜索