SwiftUI ContextMenu:设置阴影形状或隐藏它

leo*_*oe1 6 ios swift swiftui swiftui-contextmenu

我想使用带有圆形按钮的上下文菜单。如果长按激活上下文菜单,按钮周围会出现一个圆角矩形的阴影。我已经尝试过使用.contentShape(Circle()),但这根本不起作用。

有没有办法隐藏这个阴影或改变它的形状,使其与按钮匹配?也许底层 UIKit 视图的属性可以修改?

谢谢回答!

在此输入图像描述

import SwiftUI

struct ContentView: View {
    var body: some View {
        Circle()
            .frame(width: 100, height: 100, alignment: .center)
            .foregroundColor(.yellow)
            .contentShape(Circle()) //does not work
            .contextMenu
        {
            Button(action: {}, label:
                    {
                Text("Action 1")
            })
            
            Button(action: {}, label:
                    {
                Text("Action 2")
            })
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

小智 13

您需要设置上下文菜单预览的 contentMenu 形状。

您可以使用以下方法来做到这一点: .contentShape(.contextMenuPreview, Circle())

您可以在Apple 开发者文档中阅读相关内容