SwiftUI 内功之Menu 基础使用(教程含源码)

本周,我们又获得了一个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消除歧义

使用全新菜单的主要原因是消除歧义。它使我们能够为您的主要行动提供更多背景信息。假设我们正在一个文件管理器应用程序上工作,其中主要操作是创建新文件或文件夹。导航栏中有一个带有加号的按钮,用于描述主要操作。对于用户来说,创建新文件或文件夹对我们来说可能不明显?这是解决歧义菜单的理想用例。让我们看看如何使用它。

还有 53% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥2.59 继续阅读

相关阅读更多精彩内容

友情链接更多精彩内容