第一次运行后刷新Swift UI中的文本



我绞尽脑汁想让这段代码正常工作,我刚开始使用SwiftUI,还没有找到解决方案。我有一个数学方程,它添加了变量并接受用户输入的答案。我的问题是,一旦答案正确,我如何才能得到变量编号1&numbers2刷新并获取新的数字,然后再出一道数学题?

import SwiftUI
import Foundation

struct ContentView: View {
@State private var answer = ""
@State private var number1 = ""
@State private var number2 = ""
@State private var messageText = ""
@State private var keyboardHeight: CGFloat = 0.0

var numbers1 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
var numbers2 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
var questionNumber = 0
var value = 0.00

var body: some View {
VStack {

ForEach((1...10).reversed(), id: .self) {_ in
Text(self.number2)
}
Text("(numbers1)")
.font(.largeTitle)
.padding()
Text("(numbers2)")
.font(.largeTitle)
.padding()
TextField("answer", text: self.$answer)
.padding(/*@START_MENU_TOKEN@*/.all/*@END_MENU_TOKEN@*/)
.font(/*@START_MENU_TOKEN@*/.largeTitle/*@END_MENU_TOKEN@*/)
//.keyboardType(.numberPad)

Button(action:  {
var addition: Int {
let addition = self.numbers1 + self.numbers2
return addition
}
print("submit button pressed")
print(addition)
if (self.answer == String(addition)) {
print("Answer is Correct!")
}
else {
print("Answer is Incorrect")
}
self.answer = ""

}) {
Text("Submit")
.font(.largeTitle)
.padding()
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(40)
}
//    .padding()
.actionSheet(isPresented: /*@START_MENU_TOKEN@*/ /*@PLACEHOLDER=Is Presented@*/.constant(false)/*@END_MENU_TOKEN@*/) {
ActionSheet(title: Text(/*@START_MENU_TOKEN@*/ /*@PLACEHOLDER=Title@*/"Action Sheet"/*@END_MENU_TOKEN@*/))
}

}

}
}

struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
```
enter code here

您可以做的是:申报

@State var numbers1 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
@State var numbers2 : Int = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!

if (self.answer == String(addition)) {
print("Answer is Correct!")
self.numbers1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
self.numbers2 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].randomElement()!
}

或者它的一些变体,比如将数组存储在变量中

最新更新