我想要一个按钮,当单击它时会切换一个 bool 值并更改按钮的文本。通过使用 print 语句,我可以确认按钮正确切换了 bool 值,但它没有更改按钮的文本。
我已经尝试手动将 bool 默认值设置为 false,这确实会更改文本,但我仍然无法在切换时更改它。
Button(action: {
Variables.userTriangle.cupShooting = 7
Variables.userTriangle.triangle[6].toggleStatus()
}) {
if !Variables.userTriangle.triangle[6].status {
Text("x")
.font(.largeTitle)
} else {
Text("7")
.font(.largeTitle)
}
}
当点击按钮时,我希望它通过更改 bool 值来更改文本的值。我计划拥有多个这样的按钮。
最佳答案
我相信该 View 只构建一次,因此它不会在每次更改时检查 if 条件...
您可以做的是将您的文本设为 @State
var,然后当您更改它时,它会在 View 中自动更新。
@State var someText = "x"
...
Button(action: {
Variables.userTriangle.cupShooting = 7
Variables.userTriangle.triangle[6].toggleStatus()
if (Variables.userTriangle.triangle[6].status) {
self.someText = "7"
} else {
self.someText = "x"
}
}) {
Text(self.someText).font(.largeTitle)
}
关于ios - 更改 bool 值时无法在 SwiftUI 中更改按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856216/