无论滑块移动多快,如何读取 UISlider 的每个值?

How to read every value of a UISlider regardless of how quickly the slider is moved?

我需要读取 UISlider 的每个值。当我在调试区域中打印滑块的值时,您会看到当以中慢速度移动滑块时,每个值都会递增 1。

然而,当我快速移动滑块时,值会大步跳跃,如下所示:

有没有办法不管滑块移动的速度如何,我都能在每一步读取滑块的值? (最好在swift)

代码:

@IBAction func didMoveFeedbackSlider(sender: UISlider) {

    let currentValue = sender.value
    var currentValueInt = Int(ceil(currentValue))

    print("slider value: \(currentValueInt)")

}

好的,如果你想遵循你的算法,这里有一个可能的解决方案

var value:Int = 0
func readSliderValue(val:Int) {
    while(value != val) {
        value = value + (val < value ? -1 : 1) // or use +=
        print(value)
    }
}

但是可能马特是对的,问题出在设计and/or算法上。

为什么值不是顺序的:滑块代表您 mouse/finger 位置的滑块的实际值。当您像在 video/gif 上一样快速移动手指时,扫描手指的内部过程 position/gesture 比您的手指慢。因此,在两次检查手指位置的内部算法之间,它(您的手指)越过了滑块的多个位置。所以滑块的想法不是向您展示您的手指是如何到达那里的,而是向您展示它现在的位置。所以从创作者的角度来看,滑块工作正常:)