SwiftUI:绑定@State值的总和
SwiftUI : Binding the sum of @State value
我尝试使用滑块计算三个数字的总和,滑块数字的任何变化都会自动更改计算值滑块上的值。我添加了一些关于绑定数字总和的问题。也许我漏了一个属性。
我只是盯着 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
我尝试使用滑块计算三个数字的总和,滑块数字的任何变化都会自动更改计算值滑块上的值。我添加了一些关于绑定数字总和的问题。也许我漏了一个属性。 我只是盯着 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