在 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