滑动以仅删除 SwiftUI 列表中的 select 行?

Swipe to delete only select rows in SwiftUI List?

下面是 SwiftUI 列表的基本代码,它允许在所有行上使用滑动删除功能。 是否可以将此限制为特定的 rows/indexes?(即仅允许第 3 行的滑动删除行为,但在所有其他行禁用它?)

在我的应用程序中,我有一个评论列表,我希望用户能够滑动删除他们自己的评论,但应该禁用所有其他评论的滑动删除行为。我知道这在 UIKit 中使用 UITableView 委托之一是可能的,但我不确定如何在 SwiftUI 中实现它。

struct ListTest: View {
    var body: some View {
        List {
            ForEach(0..<50) { index in
                Text("index is \(index)")
            }
            .onDelete(perform: { indexSet in
                print(indexSet)
            })
        }
    }
}

这是一个解决方案。使用 Xcode 12.1 / iOS 14.1

测试
    List {
        ForEach(0..<50) { index in
             Text("index is \(index)")
                .deleteDisabled(index == 3)       // << ex. !!
        }
        .onDelete(perform: { indexSet in
            print(indexSet)
        })
    }