SwiftUI:创建下拉菜单

nik*_*ers 2 menu swift swiftui ios14

HIG Apple 中写道在 iOS 14 及更高版本中,一个按钮可以显示一个下拉菜单,其中列出了人们可以从中选择的项目或操作

这正是我想要的项目。这张带有下拉菜单的“更多”栏按钮的图片完全符合要求。但是,有没有人举个例子说明如何使用 SwiftUI 从按钮创建下拉菜单(不是上下文菜单)?

jls*_*ert 12

您可以简单地使用MenuiOS 14 中针对 iOS 的新视图。

它充当按钮,按下时会显示上下文菜单。Label如果需要图像,甚至可以嵌套不同的视图,则可以使用 a ,如文档中的示例所示。

struct ContentView: View {
    @State var text = "Hello World"
    
    var body: some View {
        NavigationView {
            Text("Hello World")
                .navigationTitle("Hello")
                .navigationBarItems(trailing: {
                    Menu {
                        Button(action: { text = "Hello there" }) {
                            Label("Hello", systemImage: "pencil")
                        }
                    } label: {
                        Image(systemName: "ellipsis.circle")
                    }
                    
                }())
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}
Run Code Online (Sandbox Code Playgroud)

而不是navigationBarItems应该使用toolbar,但是我发现从 Beta 4 开始就非常不可靠了。


示例菜单

  • @hayesk 比预期容易得多。只需使用“选择器”即可。 (2认同)