程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从列表中删除项目行 - SwiftUI大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从列表中删除项目行 - SwiftUI?

开发过程中遇到从列表中删除项目行 - SwiftUI的问题如何解决?下面主要结合日常开发的经验,给出你关于从列表中删除项目行 - SwiftUI的解决方法建议,希望对你解决从列表中删除项目行 - SwiftUI有所启发或帮助;

现在在 SwiftUI 3.0 和 iOS 15 中,我们有一个 swipeActions() 方法

但是当使用 swipeActions() 时不再使用 ondelete(perform: )

我无法编写操作代码来从列表中删除项目

List{
    TextFIEld("Create new task...",text: $newTaskText)
        .onsubmit {
            taskVm.tasks.append(Task(title: newTaskText,isCompleted: falsE))
            newTaskText = ""
        }
        .submitLabel(.donE)
    ForEach($taskVm.tasks) { $task in
        HStack{
            Text(task.titlE)
            Spacer()
            Text(task.isCompleted ? "Completed ✅" : "")
                .foregroundcolor(.gray)
        }
        .swipeActions(edge: .Trailing) {
            button{
                task.isCompleted.toggle()
            } label: {
                Label("Complete",systemImage: task.isCompleted ? "clear" : "checkmark")
            }
            .Tint(task.isCompleted ? .red : .green)
        }
        .swipeActions(edge: .leading) {
            button(role: .destructivE){
                print("deleted")
            } label: {
                Label("delete",systemImage: "trash")
            }
        }
    }
 }

解决方法

如果您的 TaskIdentifiable(如果不值得这样做),那么您可以进行像

这样的删除操作
.swipeActions(edge: .leading) {
    Button(role: .destructivE){
        withAnimation {
            tasks.removeAll { task.id == $0.id }
        }
    } label: {
        Label("delete",systemImage: "trash")
    }
}

大佬总结

以上是大佬教程为你收集整理的从列表中删除项目行 - SwiftUI全部内容,希望文章能够帮你解决从列表中删除项目行 - SwiftUI所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。