接下来,您将设置一个视图来显示排序菜单。在File navigator的Views组中创建一个新的 SwiftUI 视图并将其命名为SortSelectionView.swift。
在文件顶部,就在struct声明下方,添加以下内容:
// 1
@Binding var selectedSortItem: FriendSort
// 2
let sorts: [ FriendSort ]
上面的代码执行以下操作:
为当前选定的排序项目创建绑定。
创建数组以向视图提供排序列表。
接下来,通过提供选定的排序来更新您的预览。在 的声明下SortSelectionView_Previews,添加以下属性:
@State static var sort = FriendSort.default
此属性创建 所需的初始数据SortSelectionView。接下来,更新SortSelectionView预览内部的初始化程序。替换SortSelectionView()为以下内容
SortSelectionView(
selectedSortItem: $sort,
sorts: FriendSort.sorts)
上面的代码将sort属性作为绑定和来自 的排序列表传递FriendSort,满足编译器并呈现您的预览。您可能需要通过单击“继续”按钮或使用键盘快捷键Command-Option-P来启动预览画布。
最后,Text("Hello, World!")在 body 中SortSelectionView替换为以下内容:
// 1
Menu {
// 2
Picker("Sort By", selection: $selectedSortItem) {
// 3
ForEach(sorts, id: \.self) { sort in
// 4
Text("\(sort.name)")
}
}
// 5
} label: {
Label(
"Sort",
systemImage: "line.horizontal.3.decrease.circle")
}
// 6
.pickerStyle(.inline)
上面的代码执行以下操作:
- 构建一个Menu以列出排序选项。
- 呈现 aPicker并将 theselectedSortItem作为绑定传递。
- 使用sorts数组作为选择器的数据源。
- 将名称显示FriendSort为菜单项文本。
- 显示带有图标和单词排序作为标签的视图。
- 将选择器样式设置为.inline,因此无需任何其他交互即可立即显示列表。
伟大的!这样就完成了排序菜单视图。单击SwiftUI 预览画布中的实时预览按钮以查看结果。点击排序以查看显示的菜单:
精品教程推荐
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470
教程网站:www.openswiftui.com