Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 释放thumb时防止UISlider触发UIControlEventValueChanged事件_Objective C_Uislider - Fatal编程技术网

Objective c 释放thumb时防止UISlider触发UIControlEventValueChanged事件

Objective c 释放thumb时防止UISlider触发UIControlEventValueChanged事件,objective-c,uislider,Objective C,Uislider,在观察UISlider上的UIControlEventValueChanged事件时,我注意到释放拇指时再次触发此事件。我无法通过UIControlEventTouchUpInside绕过第二次触发,因为值UIControlEventValueChanged事件已经触发。释放拇指时是否有方法防止第二次触发UIControlEventValueChanged?或者是否有方法取消滑块上所有正在进行的触摸?当观察UIControlEventValueChanged事件时,接收触摸->拖动->触摸 当需

在观察
UISlider
上的
UIControlEventValueChanged
事件时,我注意到释放拇指时再次触发此事件。我无法通过
UIControlEventTouchUpInside
绕过第二次触发,因为值
UIControlEventValueChanged
事件已经触发。释放拇指时是否有方法防止第二次触发
UIControlEventValueChanged
?或者是否有方法取消滑块上所有正在进行的触摸?

当观察
UIControlEventValueChanged
事件时,接收触摸->拖动->触摸

当需要单独捕获这些事件时,我必须观察:
UIControlEventTouchDown
->
uicontrolEventTouchDragingside | UIControlEventTouchDragOutside
->
UIControlEventTouchUpInside | UIControlEventTouchUpOutside

为什么要这样做?这就是滑块应该如何工作,以及用户期望它们如何工作。正如触碰不会注册为值更改一样,我假设触碰不会被视为值更改。有点像iOS中的音频播放器,音频的位置仅在拖动拇指时更改,而不是在释放拇指时更改。目前,我正在
UIControlEventTouchDragInside | UIControlEventTouchDragOutside
中实现值更改以实现所需的行为,仍在测试是否存在任何不必要的副作用。我假设您在连续模式下使用滑块,因此您会收到对action方法的连续调用流。我不明白为什么再打一次电话(润色)会有什么不同。顺便说一句,当我测试这个时,我确实在着陆时记录了一个值的变化。你是对的,我一定错过了最初的着陆值变化,大量的日志信息向我开火。我猜
UIControlEventValueChanged
行为包括向下、拖动和向上事件。