返回
从 modifiers 的顺序到 Animations - part3
IOS
2024-02-24 11:57:36
在上一节课中,我们学习了 modifiers 的顺序会如何影响视图。因此,我们写过这样的代码:
Text("Hello World!")
.frame(width: 200, height: 200)
.background(Color.red)
这是因为如果我们在调整 frame 之前给背景上色的话,只有原始的区域被上色,而不是之后 frame 调整后的区域。
现在,让我们来看一下 animations。Animations 允许我们在视图之间创建平滑的过渡。为了使用 animations,我们需要使用 withAnimation() 函数。withAnimation() 函数接受一个 animation 参数,该参数指定动画的持续时间、延迟和曲线。
Text("Hello World!")
.frame(width: 200, height: 200)
.background(Color.red)
.animation(.easeInOut(duration: 1))
上面的代码会在视图之间创建一个平滑的过渡。动画的持续时间为 1 秒,曲线为 easeInOut。
我们还可以使用 transition() 函数来创建更复杂的动画效果。transition() 函数接受一个 transition 参数,该参数指定动画的类型和持续时间。
Text("Hello World!")
.frame(width: 200, height: 200)
.background(Color.red)
.transition(.slide)
上面的代码会在视图之间创建一个滑动动画。动画的持续时间为默认值 0.35 秒。
我们还可以使用 withAnimation() 函数和 transition() 函数来创建更复杂的动画效果。例如,我们可以使用下面的代码来创建一个带有延迟的滑动动画:
Text("Hello World!")
.frame(width: 200, height: 200)
.background(Color.red)
.transition(.slide)
.animation(.easeInOut(duration: 1).delay(0.5))
上面的代码会在视图之间创建一个带有延迟的滑动动画。动画的持续时间为 1 秒,延迟为 0.5 秒,曲线为 easeInOut。
我希望这篇文章能帮助你了解如何在 SwiftUI 中使用 animations 和 modifiers。如果你有任何问题,请随时留言。