无论滑块移动多快,如何读取 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 比您的手指慢。因此,在两次检查手指位置的内部算法之间,它(您的手指)越过了滑块的多个位置。所以滑块的想法不是向您展示您的手指是如何到达那里的,而是向您展示它现在的位置。所以从创作者的角度来看,滑块工作正常:)
我需要读取 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 比您的手指慢。因此,在两次检查手指位置的内部算法之间,它(您的手指)越过了滑块的多个位置。所以滑块的想法不是向您展示您的手指是如何到达那里的,而是向您展示它现在的位置。所以从创作者的角度来看,滑块工作正常:)