在快速滑块中使用封闭范围的变量

Posted

技术标签:

【中文标题】在快速滑块中使用封闭范围的变量【英文标题】: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 的两倍 【参考方案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 更改为双倍工作 - 我不知道为什么我错过了

以上是关于在快速滑块中使用封闭范围的变量的主要内容,如果未能解决你的问题,请参考以下文章

在一个滑块中创建多个范围滑动手柄

从 Bootstrap 滑块获取变量

如何在 jQuery 滑块中初始化默认值?

为啥 Python 3.8.0 允许在不使用“非本地”变量的情况下从封闭函数范围更改可变类型?

Chrome开发工具:监视变量不可用(无法在封闭范围内检测到)[重复]

无法引用封闭范围中定义的非最终局部变量按钮,随机方法错误