ios - 如何强制 UISlider 值和拇指位置之间的同步?

标签 ios uislider

我正在使用自定义 UISlider。我使用 slider.value 在用户输入后保存该值。一段时间后,我需要使用 [slider setValue:savedValue] 将幻灯片的位置恢复为其保存的值。

但是我注意到保存时的位置和恢复后的位置之间存在一些差异。

过了一段时间,我发现如果用户快速移动拇指,它会比实际值走得更远(某种动量/惯性效应)。如何确保一个值对应于一个拇指位置?

最佳答案

假设您正在捕捉 UIControlEventTouchUpInside 来指示“完成”,请改用 UIControlEventEditingDidEnd

如果失败,您可以键值观察 value,在每次更改时取消 future 的保存,如果 tracking 为 false,则从现在起 0.5 秒安排新的保存。例如

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(storeValue) object:nil];

if(!slider.tracking)
{
    [self performSelector:@selector(storeValue) withObject:nil afterDelay:0.5];
}

(或者明确存储是否计划保存,如果您发现任何性能问题,我猜,但除非必须,否则不要使其过于复杂)

关于ios - 如何强制 UISlider 值和拇指位置之间的同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704810/

相关文章:

ios - command/usr/bin/codedesign 失败,退出代码 1-代码符号错误

ios - Unity3d 在 iPhone 上的表现

ios - UISlider 上的 resizableImageWithCapInsets 在 iOS 6 及更高版本中变形

ios - 释放触摸时 UISlider 过于敏感

ios - HudLayer 和 GameLayer 之间的委托(delegate)无法工作

ios - 类是否可以显式调用协议(protocol)扩展的方法?

objective-c - iOS:方向获取 future 的self.view.bounds

uikit - iOS 7 - UISlider thumbTIntColor 不会改变

iphone - UISlider 轨道图像在滑动时消失

ios - 从 UIViewController 设置 UIView 的背景颜色