SwiftUI:contextMenu 菜单

作者: 韦弦Zhy | 来源:发表于2020-09-15 00:01 被阅读0次

    \color{red}{\Large \mathbf{Hacking \quad with \quad iOS: SwiftUI \quad Edition}}

    {\Large \mathbf{潜力客户名单}}

    {\Large \mathbf{Hot \ Prospects}}

    当用户点击按钮或导航链接时,很明显,SwiftUI应该触发这些视图的默认操作。但是,如果他们按住某些东西怎么办?在较旧的iPhone上,用户可以通过用力按压某些东西来触发 3D Touch,但是原理是相同的:用户希望与他们进行交互的内容有更多的选择。

    SwiftUI允许我们将上下文菜单附加到对象以提供此额外功能,所有这些操作都使用contextMenu()修饰符完成。您可以为此选择一个按钮,它们将按顺序显示,因此我们可以构建一个简单的上下文菜单来控制视图的背景颜色,如下所示:

    struct ContentView: View {
        @State private var backgroundColor = Color.red
    
        var body: some View {
            VStack {
                Text("Hello, World!")
                    .padding()
                    .background(backgroundColor)
    
                Text("Change Color")
                    .padding()
                    .contextMenu {
                        Button(action: {
                            self.backgroundColor = .red
                        }) {
                            Text("Red")
                        }
    
                        Button(action: {
                            self.backgroundColor = .green
                        }) {
                            Text("Green")
                        }
    
                        Button(action: {
                            self.backgroundColor = .blue
                        }) {
                            Text("Blue")
                        }
                    }
            }
        }
    }
    

    就像TabView一样,上下文菜单中的每个项目都可以附有文本和图像,同样,无论您以什么顺序提供它们还是尝试提供多个图像都无关紧要——它始终是第一个文本,然后一个图像。

    在使用上下文菜单时,我为您提供了一些技巧,以帮助确保您为用户提供最佳体验:

    1. 如果您要使用它们,请在很多地方使用它们——按住某些东西却什么也没发现可能会令人沮丧。
    2. 请保持尽可能短的选项列表——以不超过三个为目标。
    3. 不要重复用户已经可以在用户界面的其他位置看到的选项。

    请记住,上下文菜单本质上是隐藏的,因此在将重要操作隐藏在上下文菜单中之前,请三思而后行。

    译自 Creating context menus

    相关文章

      网友评论

        本文标题:SwiftUI:contextMenu 菜单

        本文链接:https://www.haomeiwen.com/subject/cqjpektx.html