我需要阅读UISlider
的每个值。当我在调试区域中打印滑块的值时,您会看到以慢速中速移动滑块时每个值都会增加1。
然而,当我快速移动滑块时,值会大幅跳跃,如下所示:
无论如何,无论移动的速度如何,我都能读取滑块的每一步的值吗? (最好是迅速)
代码:
@IBAction func didMoveFeedbackSlider(sender: UISlider) {
let currentValue = sender.value
var currentValueInt = Int(ceil(currentValue))
print("slider value: \(currentValueInt)")
}
答案 0 :(得分:6)
好的,如果您想要遵循您的算法,这是一个可能的解决方案
var value:Int = 0
func readSliderValue(val:Int) {
while(value != val) {
value = value + (val < value ? -1 : 1) // or use +=
print(value)
}
}
但是 可能Matt是对的,问题出在设计和/或算法中。
为什么值不是连续的:滑块用鼠标/手指位置表示滑块的实际值。当您在视频/ gif上快速移动手指时,扫描手指位置/手势的内部过程比手指慢。因此,在手指位置的内部算法的两次检查之间,它(您的手指)越过滑块的多个位置。所以滑块的想法并不是向你展示你的手指是如何到达那里的,而是现在的位置。所以滑块工作正常,从创作者的角度来看:)