这系列问文章图片比较多,特别是gif图,的图片上传老出问题,我已奔溃♀️♀️!!
直接到我的博客看吧, 传送门:系统学习iOS动画之三:图层动画
系统学习iOS动画之一:视图动画 学习了创建视图动画(View Animations),这一部分学习功能更强大、更偏底层的Core Animation(核心动画) APIs。核心动画的这个名字可能令人有点误解,暂时可以理解为本文的标题图层动画(Layer Animations)。
在本书的这一部分中,将学习动画层而不是视图以及如何使用特殊图层。
图层是一个简单的模型类,它公开了许多属性来表示一些基于图像的内容。 每个UIView
都有一个图层支持(都有一个layer
属性)。
视图 vs 图层
由于以下原因,图层(Layers)与视图(Views)(对于动画)不同:
- 图层是一个模型对象 —— 它公开数据属性并且不实现任何逻辑。 它没有复杂的自动布局依赖关系,也不用处理用户交互。
- 图层具有预定义的可见特征 —— 这些特征是许多影响内容在屏幕上呈现的数据属性,例如边框线,边框颜色,位置和阴影。
- 最后,Core Animation优化了图层内容的缓存并直接在GPU上快速绘图。
单个来说,两者的优点。
视图:
- 复杂视图层次结构布局,自动布局等。
- 用户交互。
- 通常具有在CPU上的主线程上执行的自定义逻辑或自定义绘图代码。
- 非常灵活,功能强大,子类很多类。
图层:
- 更简单的层次结构,更快地解决布局,绘制速度更快。
- 没有响应者链开销。
- 默认情况下没有自定义逻辑 并直接在GPU上绘制。
- 不那么灵活,子类的类更少。
视图和图层的选择技巧: 任何时候都可以选择视图动画; 当需要更高的性能时,就需要使用图层动画。
两者在架构中的位置:
预览:
本文比较长,图片比较多,预警⚠️。
8-图层动画入门 —— 从最简单的图层动画开始,了解调试动画错误的方法。
9-动画的Keys和代理 —— 怎么更好地控制当前运行的动画,并使用代理方法对动画事件做出响应。
10-动画组和时间控制 —— 组合许多简单的动画,并将它们作为一个组一起运行。
11-图层弹簧动画 —— 学习如何使用CASpringAnimation
创建强大而灵活的弹簧图层动画。
12-图层关键帧动画和结构属性 —— 学习图层关键帧动画, 动画结构属性的一些特殊处理。
接下来,学习几个专门的图层:
13-形状和蒙版 —— 通过CAShapeLayer
在屏幕上绘制形状,并为其特殊路径属性设置动画。
14-渐变动画 —— 了解如何使用CAGradientLayer
来绘制渐变和动画渐变。
15-Stroke和路径动画 —— 以交互方式绘制形状,并使用关键帧动画的一些强大功能。
16-复制动画 —— 学习如何创建图层内容的多个副本,然后利用副本制作动画。
。。。
。。。