swiftui 像消息应用程序一样,长按后将视图带到中心并模糊背景

ali*_*ego 1 ios swift swiftui

我似乎找不到如何将视图带到中心,例如弹出窗口和模糊背景,就像您在消息应用程序中长按消息时一样。

我知道有一种简单的本地方法可以做到这一点,但我似乎不知道如何做。

Geo*_*e_E 5

您正在寻找contextMenu(menuItems:). 它会显示您看到的按钮,并自动模糊背景内容以聚焦所选视图。

\n

例子:

\n
struct ContentView: View {\n    var body: some View {\n        ScrollView {\n            LazyVStack(spacing: 30) {\n                ForEach(0 ..< 20) { _ in\n                    Text(String(Int.random(in: 1 ... 100000000)))\n                        .padding()\n                        .contextMenu {\n                            Button {\n                                //\n                            } label: {\n                                Label("Reply", systemImage: "arrowshape.turn.up.left")\n                            }\n\n                            Button {\n                                //\n                            } label: {\n                                Label("Copy", systemImage: "doc.on.doc")\n                            }\n\n                            Button {\n                                //\n                            } label: {\n                                Label("Translate", systemImage: "arrow.left.arrow.right")\n                            }\n\n                            Button {\n                                //\n                            } label: {\n                                Label("More\xe2\x80\xa6", systemImage: "ellipsis.circle")\n                            }\n                        }\n                }\n            }\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

结果:

\n

结果

\n