如何在 SwiftUI 中添加弹出菜单视图?

Tom*_*mas -1 xcode ios swiftui

我正在尝试在我的应用程序中实现一个类似于苹果天气应用程序的功能。这是一个照片示例:

在此输入图像描述

从外观上看,它是一个按钮,当用户单击它时,会出现其他内容。那是什么样的 SwiftUI 控件?基本上,什么代码制作了该按钮以及由此出现的小(迷你)菜单?

Gui*_*nez 7

那将是menu

import SwiftUI

struct menuView: View {
    var body: some View {
        NavigationView {
            ZStack {
                VStack{
                    Text("this is a test")
                }
            }
            .navigationTitle("My custom title")
            .toolbar {
                ToolbarItemGroup(placement: .navigationBarTrailing) {
                    Menu {
                        Button(action: {}) {
                            Label("Create a file", systemImage: "doc")
                        }
                        
                        Button(action: {}) {
                            Label("Create a folder", systemImage: "folder")
                        }
                    } label: {
                        Label("Add", systemImage: "ellipsis.circle")
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Ben*_*ers 5

那将是一个Menu.

\n

根据Apple 开发者文档,这里是一个用法示例:

\n
Menu("Actions") {\n    Button("Duplicate", action: duplicate)\n    Button("Rename", action: rename)\n    Button("Delete\xe2\x80\xa6", action: delete)\n    Menu("Copy") {\n        Button("Copy", action: copy)\n        Button("Copy Formatted", action: copyFormatted)\n        Button("Copy Library Path", action: copyPath)\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

如果您希望打开菜单的按钮是 SF 符号,例如带有三个点的椭圆,则可以Menu稍微不同地调用:

\n
Menu {\n     // Add options here...\n} label: {\n    Image(systemName: "ellipsis.circle")\n}\n
Run Code Online (Sandbox Code Playgroud)\n