本周,我们又获得了一个Xcode Beta,它将菜单带入SwiftUI世界。菜单将替换自iOS 8以来就一直在使用的action sheet。action sheet不能与我们如今拥有的大屏幕配合使用。本文,我们将学习如何使用菜单在SwiftUI中提供辅助操作或选择选项。
本文价值与收获
看完本文后,您将能够作出下面的界面

截屏2020-08-05 上午11.04.33.png

使用Menu消除歧义

选择

划分Section

Menu设置Styling样式
基础知识
Menu
用于显示菜单的控件。
struct Menu<Label, Content> where Label : View, Content : View
总览
下面的示例显示了一个包含三个按钮的菜单和一个子菜单,该菜单包含其自己的三个按钮。
Menu("Actions") {
Button("Duplicate", action: duplicate)
Button("Rename", action: rename)
Button("Delete…", action: delete)
Menu("Copy") {
Button("Copy", action: copy)
Button("Copy Formatted", action: copyFormatted)
Button("Copy Library Path", action: copyPath)
}
}
您可以使用来创建菜单的标题,如上一个示例所示,也可以使用创建多个视图(例如图像和文本视图)的视图构建器:
Menu {
Button("Open in Preview", action: openInPreview)
Button("Save as PDF", action: saveAsPDF)
} label: {
Image(systemName: "document")
Text("PDF")
}
样式菜单
使用修饰符可以更改视图中所有菜单的样式。下面的示例演示如何应用自定义样式:menuStyle(_:)
Menu("Editing") {
Button("Set In Point", action: setInPoint)
Button("Set Out Point", action: setOutPoint)
}
.menuStyle(EditingControlsMenuStyle())
实战代码
1、使用Menu消除歧义
使用全新菜单的主要原因是消除歧义。它使我们能够为您的主要行动提供更多背景信息。假设我们正在一个文件管理器应用程序上工作,其中主要操作是创建新文件或文件夹。导航栏中有一个带有加号的按钮,用于描述主要操作。对于用户来说,创建新文件或文件夹对我们来说可能不明显?这是解决歧义菜单的理想用例。让我们看看如何使用它。