在 swift 滑块中使用封闭范围的变量
using variables for a closed range in swift slider
我有以下按预期工作的滑块,但是我想用最小和最大变量替换范围 0...100
Slider(value: $vm.lengthSliderValue,
in: 0...100,
step: 5,
onEditingChanged: { (_) in
vm.materialSizeUpdate()
},
minimumValueLabel: Text(vm.currentValues.wallmin),
maximumValueLabel: Text(vm.currentValues.wallmax))
{
Text("Select wall thickness")
}
我试过以下方法,但无法编译。
我已经尝试了我能想到的所有相同的变体,但没有任何效果。
我如何用最小和最大变量替换范围
let min = Int(vm.currentValues.wallmin)
let max = Int(vm.currentValues.wallmax)
Slider(value: $vm.lengthSliderValue,
in: min ... max,
step: 5,
onEditingChanged: { (_) in
vm.materialSizeUpdate()
},
minimumValueLabel: Text(vm.currentValues.wallmin),
maximumValueLabel: Text(vm.currentValues.wallmax))
{
Text("Select wall thickness")
}
Text("\(vm.lengthSliderValue)")
你需要使用浮点类型,比如
struct TestMinMaxSlider: View {
@State private var value: Double = 10
var min: Double = 0
var max: Double = 100
var body: some View {
VStack {
Text("Value: \(Int(value))")
Slider(value: $value, in: min...max, step: 5)
}
}
}
测试 Xcode 13.2 / iOS 15.2
我有以下按预期工作的滑块,但是我想用最小和最大变量替换范围 0...100
Slider(value: $vm.lengthSliderValue,
in: 0...100,
step: 5,
onEditingChanged: { (_) in
vm.materialSizeUpdate()
},
minimumValueLabel: Text(vm.currentValues.wallmin),
maximumValueLabel: Text(vm.currentValues.wallmax))
{
Text("Select wall thickness")
}
我试过以下方法,但无法编译。 我已经尝试了我能想到的所有相同的变体,但没有任何效果。 我如何用最小和最大变量替换范围
let min = Int(vm.currentValues.wallmin)
let max = Int(vm.currentValues.wallmax)
Slider(value: $vm.lengthSliderValue,
in: min ... max,
step: 5,
onEditingChanged: { (_) in
vm.materialSizeUpdate()
},
minimumValueLabel: Text(vm.currentValues.wallmin),
maximumValueLabel: Text(vm.currentValues.wallmax))
{
Text("Select wall thickness")
}
Text("\(vm.lengthSliderValue)")
你需要使用浮点类型,比如
struct TestMinMaxSlider: View {
@State private var value: Double = 10
var min: Double = 0
var max: Double = 100
var body: some View {
VStack {
Text("Value: \(Int(value))")
Slider(value: $value, in: min...max, step: 5)
}
}
}
测试 Xcode 13.2 / iOS 15.2