问题描述
在HIG Apple writes中:在iOS 14和更高版本中,按钮可以显示一个下拉菜单,其中列出了人们可以选择的项目或动作
这正是我想要的项目。 This picture上有一个带有下拉菜单的“更多”栏按钮,非常适合您的账单。但是,有没有人举过一个例子,说明如何使用SwiftUI从按钮创建下拉菜单(而不是上下文菜单)?
解决方法
您可以简单地使用iOS 14中iOS新增的Menu
视图。
它充当按钮,按下后将显示上下文菜单。如果您想要一张图像甚至嵌套不同的视图,可以使用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())
}
}
一个人可能应该使用navigationBarItems
而不是toolbar
,但是我发现从Beta 4开始这是非常不可靠的。