12.4 如何创建显式动画
如果将动画修改器附加到视图,最终会是一个隐式动画。隐式动画就是我们并没有指定任何动画的类型。我们仅仅改变了一些属性,然后系统来决定如何并且何时去实现动画。
而显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。我们可以使用 withAnimation()
修改器来让 SwiftUI 进行精确的动画设定。
例如,使用显式动画来让按钮逐渐消失:
withAnimation()
接受一个所需动画类型的参数,因此可以创建一个 3 秒钟的基本动画,如下所示:
显式动画通常很有用,他们它会使每个受影响的视图都出现动画,而不仅仅是哪些附加了隐式动画的动画。例如,如果视图 A 必须为视图 B 的动画腾出空间,但是只有视图 B 有动画效果,那么就必须使用显示动画,不然视图 A 会直接无动画地跳到新的位置。