【问题标题】:using variables for a closed range in swift slider在快速滑块中使用封闭范围的变量
【发布时间】:2021-12-31 10:40:36
【问题描述】:

我有以下滑块按预期工作,但是我想用最小和最大变量替换范围 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)")

【问题讨论】:

  • slider 需要你使用 int 的两倍

标签: variables swiftui slider range


【解决方案1】:

你需要使用浮点类型,比如

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 测试

【讨论】:

  • 感谢只是将 Int 更改为双倍工作 - 我不知道为什么我错过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 2017-04-21
  • 1970-01-01
  • 2016-11-13
  • 2019-08-02
相关资源
最近更新 更多