Hacking with iOS: SwiftUI Edition

SwiftUI:contextMenu 菜单

2020-09-15  本文已影响0人  韦弦Zhy

\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

上一篇下一篇

猜你喜欢

热点阅读