SwiftUI - 具有多项选择的列表(不是自定义列表)

mal*_*low 7 list multi-select ios swift swiftui

如何在 SwiftUI 中制作多选列表?我知道我可以像这样定制一个: https: //stackoverflow.com/a/57023746/12315994

但是 SwiftUI 中已经有默认的了吗?

以下是 Apple 邮件应用程序中的多选控件示例:

苹果邮件应用程序

当您选择多张照片时,Apple Photos 中也会使用相同的控件。这些控件也位于 Apple 官方 iOS Sketch 库中,您可以从此处下载: https: //developer.apple.com/design/resources/

苹果的提醒应用程序中有非常相似的控件:

苹果提醒应用程序

jn_*_*pdx 13

是的,SwiftUI的列表内置了这个功能。您需要Setselection列表的参数提供一个以进行多项选择。我还将编辑模式设置.active为默认,这是可选的。

struct ContentView: View {
    @State private var selection = Set<String>()
    @State private var isEditMode: EditMode = .active
    
    let items = [
        "Item 1",
        "Item 2",
        "Item 3",
        "Item 4"
    ]

    var body: some View {
        NavigationView {
            List(items, id: \.self, selection: $selection) { name in
                Text(name)
            }
            .toolbar {
                EditButton()
            }
            .environment(\.editMode, self.$isEditMode)
        }
    }
}

Run Code Online (Sandbox Code Playgroud)