动画是通过动作解释我们的应用程序功能以及让用户满意的好方法。在正确的位置添加动画可以真正使UI看起来更加精致和美观。
但是创建出色的动画需要进行大量的调整和迭代,因为我们经常需要尝试不同的动画步骤,持续时间和曲线来让事情感觉恰到好处。
这就是为什么使用能够让我们轻松更改内容和调整参数的工具来构建动画非常重要的原因。本周,让我们来看看SpriteKit如何作为某种动画的工具。对于Swift,有更好的见解,想要更好的探讨,可以进入iOS技术群,一起探讨交流
基础
SpriteKit是Apple用于2D游戏开发的内置框架(自iOS 7起)。因此,虽然它主要针对制作游戏,但对于任何类型的2D绘图和动画来说,它也是一个非常好的工具。事实上,在WWDC 2017上,Apple透露他们实际上正在使用SpriteKit为Xcode中的内存调试器构建UI。
对于动画,SpriteKit在构建更复杂,自包含的场景时非常有用。例如,当您创建某种形式的全屏加载动画时,插图作为入职流程的一部分,或包含多个动画步骤的任何其他内容,并且不涉及直接设置视图和UI控件的动画。
举个例子,我们将构建一个包含4个表情符号的加载动画,它看起来像这样:
设置场景
所有SpriteKit内容都在场景中呈现,由SKScene类的实例管理。然后使用基于节点的系统定义内容,使您能够创建层次结构,就像使用UIViews或CALayers时一样。
您可以使用各种子类创建节点SKNode,例如SKSpriteNode基于精灵(图像)的内容或SKLabelNode文本内容。
最后,使用动作(由SKAction类表示)使节点在场景中执行各种动画(例如移动,缩放,旋转等)。
入门
让我们首先创建一个SKScene动画容器。我们给它一个从视图控制器视图的最小尺寸取得的正方形尺寸,并设置一个白色背景颜色:
extension AnimationViewController {
func makeScene() -> SKScene {
let minimumDimension = min(view.frame.width, view.frame.height)
let size = CGSize(width: minimumDimensi