background - SwiftUI - 上下文菜单背景颜色

标签 background swiftui contextmenu

Context menu background not updated

我正在尝试更新背景颜色。

View 的背景颜色已更新,但上下文菜单的背景颜色未更新

上下文菜单显示之前设置的颜色。

谁能帮我解决这个问题。 提前致谢

这是我使用的代码

import SwiftUI

struct ContextMenu: View {
    /*List of items =*/

    @State var bgColor = Color.gray
    var body: some View {

        HStack {
            Rectangle().frame(width: 120, height: 120).opacity(0.01).border(Color.black, width: 1).contextMenu{
                VStack {
                    Button("Orange",action: {
                        self.bgColor = Color.orange
                    })

                    Button("Green",action: {
                        self.bgColor = Color.green
                    })

                    Button("Red",action: {
                        self.bgColor = Color.red
                    })
                }
            }
        }.frame(width:UIScreen.main.bounds.width, height: 200).background(bgColor)

    }
}

最佳答案

上下文菜单缓存内容并一直重复使用。这是强制更新它的可能解决方案。

使用 Xcode 11.4/iOS 13.4 测试

demo

HStack {
    Rectangle().fill(bgColor) // << use same color
        .frame(width: 120, height: 120)
        .border(Color.black, width: 1)
        .contextMenu{
            VStack {
                Button("Orange",action: {
                    self.bgColor = Color.orange
                })

                Button("Green",action: {
                    self.bgColor = Color.green
                })

                Button("Red",action: {
                    self.bgColor = Color.red
                })
            }
        }.id(UUID())      // << force recreate context menu
}.frame(width:UIScreen.main.bounds.width, height: 200).background(bgColor)

关于background - SwiftUI - 上下文菜单背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61517506/

相关文章:

SwiftUi 无法同时满足约束 - 当焦点在文本字段和键盘上时打开

ios - AVPlayer 日志机制 - Swift

background - 在 tvOS 后台接收 "Siri remote"事件

javascript - 小部件 iOS 14 使用 swift ui 创建具有 native react 的 ui

jquery - 如何根据条件动态更改上下文菜单中的名称

javascript - 是否可以使用变量作为函数名

c++ - Windows 注册表项 AppliesTo 不适用于用户目录

css - 子元素和父元素,均具有 RGBA 背景。如何确定 "equivalent"rgba?

html - 电子邮件背景颜色上的背景图像

ios - 如何在 SwiftUI 中实现自定义日历?