SwiftUI:创建下拉菜单

SwiftUI: Creating a Pull-down menu

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

这正是我想要的项目。 This picture 他们有一个带有下拉菜单的“更多”栏按钮,非常符合要求。但是,有没有人有关于如何使用 SwiftUI 从按钮创建下拉菜单(不是上下文菜单)的示例?

您可以简单地使用 iOS 中 iOS 的新视图 Menu 14.

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

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())
    }
}

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