SwiftUI - 多选列表(不是自定义列表)
Posted
技术标签:
【中文标题】SwiftUI - 多选列表(不是自定义列表)【英文标题】:SwiftUI - list with multi-select (not a custom one) 【发布时间】:2021-05-14 04:00:45 【问题描述】:如何在 SwiftUI 中创建多选列表? 我知道我可以像这样定制一个:https://***.com/a/57023746/12315994
但是 SwiftUI 中是否已经存在默认设置?
以下是 Apple 邮件应用中的多选控件示例:
当您选择多张照片时,Apple Photos 中也会使用相同的控件。 这些控件也在 Apple 的官方 ios 草图库中,您可以从这里下载:https://developer.apple.com/design/resources/
Apple 的 Reminders App 中有非常相似的控件:
【问题讨论】:
【参考方案1】:是的,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)
【讨论】:
太棒了!我不知道@State private var isEditMode: EditMode = .active
。 2 个问题: 1. 您可以在表单中使用您的解决方案吗?因此,例如,用户将创建新项目,并且会看到很少的(多)选择选项。后来我可以保存有关每个项目选择了什么的信息? 2. 你可以改变默认灰色的选定项目的背景颜色吗?
1) 在我尝试将其嵌入Form
的有限实验中,它似乎不起作用。 2) 不是我知道的。也许有某种列表样式和修饰符的组合,但没有什么能以明显的方式起作用。
谢谢。我将尝试如何在 Forms 中使用它。以上是关于SwiftUI - 多选列表(不是自定义列表)的主要内容,如果未能解决你的问题,请参考以下文章