前几篇主要是了解视图动画View Animations,现在可以了解一下核心动画Core Animation的api了。
你将了解动画层而不是视图,以及如何使用特殊的层。
Views vs. layers
层是一个简单的模型类,它公开许多属性来表示一些基于图像的内容。每个UIView都有一个层作为支持,所以你可以把层想象成内容背后的底层。
由于以下原因,层与视图(相对于动画)不同:
•层是模型对象——它公开数据属性,不实现逻辑。它没有复杂的自动布局依赖项,也不处理用户交互。
•它有预先定义的可见特性——这些特性是一些影响内容在屏幕上呈现的数据属性,比如边框线、边框颜色、位置和阴影。
•最后,Core Animation优化了层内容的缓存,并直接在GPU上快速绘图。
并排比较视图和层:
Views
•复杂的视图层次结构布局、自动布局等。
•用户交互。
•通常有自定义的逻辑或自定义的绘图代码,在CPU的主线程上执行。
•非常灵活、强大,有很多子类。
Layers
•更简单的层次结构,更快的解决布局,更快的绘制。
•没有响应链开销。
•默认情况下没有自定义逻辑。直接画在GPU上。
•不太灵活,子类更少。
如果你需要在视图和层之间进行选择,我的建议是:选择视图动画;当你需要更多的性能或灵活性的时候再切换到层动画。
概述
• Chapter 8, Getting Started with Layer Animations 你将从最简单的图层动画开始,还将了解调试动画出错的情况。
• Chapter 9, Animation keys and delegates在这里,你可以对当前运行的动画进行更多的控制,并使用委托方法对动画事件做出响应。
• Chapter 10, Groups and advanced timing在本章中,你将一些简单的动画组合在一起作为一个组来运行。
• Chapter 11, Layer Springs:在本章中,您将学习如何使用CASpringAnimation来创建强大而灵活的spring层动画。
• Chapter 12, Keyframe animations and struct properties: 在这里,你将了解图层关键帧动画,它是强大的,与视图关键帧动画稍有不同。有一些关于动画结构属性的特殊处理,你也会学到。
• Chapter 13, Shapes and masks: 通过CAShapeLayer在屏幕上绘制图形,并赋予它特殊的路径属性以动画效果。
• Chapter 14, Gradient animations:学习如何使用CAGradientLayer帮助您绘制和动画渐变。
• Chapter 15, Stroke and path animations:在这里,你将交互式地绘制图形,并使用关键帧动画的一些强大特性。
• Chapter 16, Replicating animations: 你将学习如何创建多个图层内容,然后同步动画它们。
你会有一场精彩的骑行——系好安全带!:]
网友评论