AnimationStack

一个可以对内部视图进行动画处理的堆栈。 使用 ForEachAnimation 创建动画 ForEach 循环。 您也可以自定义动画。

文档

创建 AnimationStack

VStack {
    AnimationStack {
            Text("Welcome")
            Text("to")
            Text("AnimationStack")
        }
    }
.bold()
.font(.largeTitle)

自定义 AnimationStack

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

ForEachAnimation 是一个 ForEach 循环,它以类似于 AnimationStack 的方式动画化视图。

提供的数组中的元素必须符合 Hashable 协议。

ForEachAnimation(["SwiftUI", "is", "awesome"]) { i in
    Text(i)
}

ForEachAnimation 是只读的。 您无法通过 Binding 在堆栈中更改数组中的值。 您可以像自定义 AnimationStack 一样自定义 ForEachAnimation。