SwiftUI - 带有 multi-select 的列表(不是自定义的)
SwiftUI - list with multi-select (not a custom one)
如何在 SwiftUI 中使用 multi-select 制作列表?
我知道我可以像这样定制一个:
但是 SwiftUI 中已经有一个默认的吗?
这是 Apple 邮件应用程序中的多select 控件示例:
当您 select 多张照片时,Apple 照片中也会使用相同的控件。
这些控件也在 Apple 的官方 iOS Sketch Library 中,您可以从这里下载:https://developer.apple.com/design/resources/
Apple 的 Reminders 应用程序中有非常相似的控件:
是的,SwiftUI的列表内置了这个能力,需要为列表的selection
参数提供一个Set
,才能实现多选。我还默认将编辑模式设置为 .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)
}
}
}
如何在 SwiftUI 中使用 multi-select 制作列表?
我知道我可以像这样定制一个:
但是 SwiftUI 中已经有一个默认的吗?
这是 Apple 邮件应用程序中的多select 控件示例:
当您 select 多张照片时,Apple 照片中也会使用相同的控件。 这些控件也在 Apple 的官方 iOS Sketch Library 中,您可以从这里下载:https://developer.apple.com/design/resources/
Apple 的 Reminders 应用程序中有非常相似的控件:
是的,SwiftUI的列表内置了这个能力,需要为列表的selection
参数提供一个Set
,才能实现多选。我还默认将编辑模式设置为 .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)
}
}
}