我正在尝试设置一个.contextMenu
带有切换值的按钮的SwiftUI Bool
。上下文菜单的按钮文本应该在Bool
切换时发生变化。但上下文菜单不会更新。有没有办法强制更新上下文菜单?
描述问题的示例代码:
import SwiftUI
struct Item: Identifiable {
let id = UUID()
let user: String
var active: Bool
}
struct ContentView: View {
@State var items: [Item] = [
Item(user: "Daniel",active: false),
Item(user: "Jack", active: true),
Item(user: "John", active: true)
]
@State var isOn : Bool = false
var body: some View {
List {
ForEach(items) { item in
VStack {
Text("\(item.user)")
HStack {
Text("Active ? ")
Text(item.active ? "YES": "NO")
}
}.contextMenu{
Button(action: …
Run Code Online (Sandbox Code Playgroud) 我想使用带有圆形按钮的上下文菜单。如果长按激活上下文菜单,按钮周围会出现一个圆角矩形的阴影。我已经尝试过使用.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)