问题描述
我正在尝试创建一个对象列表,当填充每个对象时,每个对象都会有一个延迟动画,具体取决于它在数组中的位置。
要复制我的问题,这里是代码:
struct ScrollViewTest: View{
@State private var indexes = [Int]()
var body: some View{
vstack{
ForEach(indexes,id:\.self){ index in
Text("Index: \(index)")
.transition(.opacity)
}
}
.onAppear {
for index in 0..<9{
withAnimation(Animation.easeInOut.delay(Double(index) * 0.5)){
indexes.insert(index,at: index)
}
}
}
}
}
如您所见,Index 8
在动画开始之前就已经可见。
我该如何解决此类问题?
解决方法
我在 Swift 5、Xcode 版本 12.3 上没有发现问题。
,显然,这个问题只发生在实时预览中。 我的错误是我确定存在问题,因为我使用了实时预览来检查动画。