我正在使用自定义 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/