ScrollView 中的动画缺少 SwiftUI 中的最后一个对象

问题描述

我正在尝试创建一个对象列表,当填充每个对象时,每个对象都会有一个延迟动画,具体取决于它在数组中的位置。

要复制我的问题,这里是代码

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 上没有发现问题。

,

显然,这个问题只发生在实时预览中。 我的错误是我确定存在问题,因为我使用了实时预览来检查动画。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...