如何使swiftui在更新列表之前等待元素完成其退出转换';她在吗?

如何使swiftui在更新列表之前等待元素完成其退出转换';她在吗?,swift,swiftui,Swift,Swiftui,我在VStack中有一系列任务,用户可以检查或删除这些任务。每个任务视图都有一个用于进入和退出的.slide转换。当我删除任务时,列表会在按下delete按钮后立即更新并向上移动,而不是等待退出转换完成。这使它看起来像是被删除的底部元素。哦,很快我就选择使用VStack而不是列表,因为有一些视觉上的修改我无法在列表上工作 以下是每个列表项的代码: struct CheckBoxView: View { @Binding var progress: Float @State var

我在VStack中有一系列任务,用户可以检查或删除这些任务。每个任务视图都有一个用于进入和退出的
.slide
转换。当我删除任务时,列表会在按下delete按钮后立即更新并向上移动,而不是等待退出转换完成。这使它看起来像是被删除的底部元素。哦,很快我就选择使用VStack而不是列表,因为有一些视觉上的修改我无法在列表上工作

以下是每个列表项的代码:

struct CheckBoxView: View {
    @Binding var progress: Float
    @State var checked = false
    @EnvironmentObject var nl: NoteList
    
    let label: String
    let index: Int
    
    
    var body: some View {
        HStack {
            Image(systemName: nl.tickedCheck(index:index) ? "checkmark.square.fill" : "square")
                .foregroundColor(nl.tickedCheck(index:index) ? Color(UIColor.systemPurple) : Color.secondary)
                .padding(.leading, 15)
                .font(.title2)
                .onTapGesture {
                    self.nl.toggle(indix: index)
                }
            Text(label)
            Spacer()
            Button(action: {
                nl.remove(index: index)
                
                
            }){Image(systemName: "trash").padding(.trailing)}
        }
        .frame(
            minWidth: 0,
            maxWidth: .infinity,
            minHeight: 50,
            maxHeight: .infinity,
            alignment: .leading
        )
        .background(Color.white)
        .cornerRadius(8)
        .padding(.bottom, 5)
        .padding(.horizontal, 30)
        .transition(.slide)
        .animation(.spring())
    }
    
}
我不知道这是否相关,但以下是他们的列表:

ScrollView {
    LazyVStack {
        ForEach (nl.noteList.indices, id: \.self) { index in
            CheckBoxView(progress: $progress, label: nl.noteList[index].name, index: index)
        }
    }
}
请让我知道,如果我可以提供更多的信息