一个可以对内部视图进行动画处理的堆栈。 使用 ForEachAnimation 创建动画 ForEach 循环。 您也可以自定义动画。
VStack {
AnimationStack {
Text("Welcome")
Text("to")
Text("AnimationStack")
}
}
.bold()
.font(.largeTitle)
AnimationStack(opacity: true, offSetX: 100, offSetY: 100, rotation: 11, scale: 2, delay: 0.3, animation: .spring.speed(0.7)) {
Text("Welcome")
Text("to")
Text("AnimationStack")
}
所有提供的参数都是动画开始之前的值。
opacity: true offSetX: 100 delay: 1
堆栈将淡入视图,因为 opacity 为 true。 堆栈将动画化视图的偏移量,从 100 到 0。
延迟是视图动画之间的时间间隔。 如果堆栈中有三个视图,延迟为 1,则第一个视图将在 1 秒后开始动画,第二个视图在 2 秒后,第三个视图在 3 秒后。
HStack {
AnimationStack(opacity: true, offSetX: 100, offSetY: 0, delay: 1) {
Text("Amazing")
Text("Wow")
Text("Cool")
Text("Nice")
}
}
.bold()
.font(.largeTitle)
ForEachAnimation 是一个 ForEach 循环,它以类似于 AnimationStack 的方式动画化视图。
提供的数组中的元素必须符合 Hashable 协议。
ForEachAnimation(["SwiftUI", "is", "awesome"]) { i in
Text(i)
}
ForEachAnimation 是只读的。 您无法通过 Binding 在堆栈中更改数组中的值。 您可以像自定义 AnimationStack 一样自定义 ForEachAnimation。