gpt4 book ai didi

swiftui - 如何在 ScrollView 中执行 View 的动画转换?

转载 作者:行者123 更新时间:2023-12-04 15:32:50 24 4
gpt4 key购买 nike

我有一个 ScrollView ,其中包含 HStack ,其中包含 ForEach ,其中包含一些带有附加转换的自定义 View 。它看起来像:

ScrollView {
HStack {
ForEach(self.objects) { object in
ObjectView(object)
.transition(.slide)
}
}
}

当我更新 self.objects 的内容时(在调用 withAnimation 时),我想要旧的/新的 ObjectView s 按照过渡指定的进出动画。

不幸的是,没有出现动画过渡。如果我删除 ScrollView (留下 HStack 作为 Root View ),动画转换按预期工作。

有没有一种方法可以为 ScrollView 中的 View 转换设置动画? ?

最佳答案

也许你有兴趣......这有效:

struct ObjectView : View {

var text: String

var body: some View {
Text(text)
}
}

struct ContentView: View {

@State var objects = ["a", "b", "c"]

var body: some View {

Group() {
Button("add") {
withAnimation() {
self.objects.append("f")
}
}
ScrollView {
HStack {
ForEach(objects, id: \.self) { object in
ObjectView(text: object)
.transition(.slide)
}
}.frame(width: 500)
}
}
}
}

关于swiftui - 如何在 ScrollView 中执行 View 的动画转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56900686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com