问题描述
我尝试使用滑块计算三个数字的总和,滑块编号的任何更改都会自动更改计算值滑块上的值。我添加了一些绑定数字总和的问题。也许我错过了一个属性。 我只是盯着 Swift
有什么解决办法吗?
非常感谢
弗雷德
import SwiftUI
struct ContentView: View {
@State private var number1 = 0
@State private var number2 = 0
@State private var number3 = 0
@State private var computedValue = 0
var body: some View {
vstack {
Text("Number 1")
Picker("Number 1",selection: $number1,content: {
Text("0").tag(0)
Text("1").tag(1)
Text("2").tag(2)
Text("3").tag(3)
}
).pickerStyle(SegmentedPickerStyle())
Text("Number 2")
Picker("Number 2",selection: $number2,content: {
Text("0").tag(0)
Text("1").tag(1)
Text("2").tag(2)
Text("3").tag(3)
}
).pickerStyle(SegmentedPickerStyle())
Text("Number 3")
Picker("Number 3",selection: $number3,content: {
Text("0").tag(0)
Text("1").tag(1)
Text("2").tag(2)
Text("3").tag(3)
}
).pickerStyle(SegmentedPickerStyle())
Text("Computed value")
Picker("computed",selection: sum(n1: number1,n2: number2,n3: number3),content: {
Text("0").tag(0)
Text("1").tag(1)
Text("2").tag(2)
Text("3").tag(3)
Text("4").tag(4)
Text("5").tag(5)
Text("6").tag(6)
Text("7").tag(7)
Text("8").tag(8)
Text("9").tag(9)
}
).pickerStyle(SegmentedPickerStyle())
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
func sum (n1: Int,n2: Int,n3: Int) -> Int {
return n1 + n2 + n3
}
解决方法
使用.constant
Picker("computed",selection: Binding.constant(sum(n1: number1,n2: number2,n3: number3)),content: { // < - Here