我有這個變數,timeRemaining,當按下按鈕時,它應該從 timeRemaining 中減去一個。
我希望每當用戶單擊按鈕并認為這會起作用時更新文本,但它不會更新。
var timeRemaining: CGFloat = 4
Button {
{
if (timeRemaining) >= 2 {
timeRemaining -= 1
}else if timeRemaining <= 1 {
timeRemaining = 3
}
}()
} label: {
Image(systemName: "minus")
}
Text("Time: \(timeRemaining)")
我還嘗試將 CGFloat 分配給另一個變數,然后將其設為整數。像這樣:
var timeRemaining: CGFloat = 4
struct timeView {
@State private var timeRemaining: CGFloat = defaultTimeRemaining
var body: some View {
Text("Time: \(Int(defaultTimeRemaining))")
}
}
有誰知道如何解決這個問題?提前致謝 :)
uj5u.com熱心網友回復:
確保您正在更新 @State 變數。例如:
struct ContentView: View {
@State private var timeRemaining: Int = 0
var body: some View {
VStack {
Text("Time \(timeRemaining)")
ButtonView(timeRemaining: $timeRemaining)
}
}
}
struct ButtonView: View {
@Binding var timeRemaining: Int
var body: some View {
Button {
timeRemaining = 1
} label: {
Text("More time")
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/468368.html
下一篇:如何在按鈕單擊時回圈顯示影像
