Skip to content

Animations

根据状态变化创建平滑的视觉更新。

通过 SwiftUI 来定义应用程序用户界面在不同状态下的呈现方式,并随后依赖于 SwiftUI 在状态发生改变时自动更新界面。

为了避免状态改变时出现突兀的视觉过渡,可以通过以下任一方式添加动画效果:

  • 通过在 withAnimation(_:duration:) 全局函数的调用内部更改状态,来实现状态变更时所有视觉变化的动画效果。
  • 当特定值发生变化时,向受影响的视图应用 animation(_:value:) 视图修饰符,从而为该特定视图添加动画。
  • 通过使用绑定( Binding )的 animation(_:) 方法,对绑定值的变化进行动画处理。

SwiftUI 自动为许多内置视图修改器产生的效果添加动画,例如那些设置缩放比例或透明度值的修改器。你还可以通过使自定义视图遵循 Animatable 协议,并告知 SwiftUI 你想要动画化的值,来对其他值进行动画处理。

当一个带有动画的状态变更导致视图层级中添加或移除视图时,你可以使用 AnyTransition 定义的内置过渡效果(如滑动或缩放)来指导 SwiftUI 如何使视图平滑地进入或退出位置。此外,你还可以创建自定义过渡效果。