UISlider无法正确处理.touchUpInside事件

时间:2017-10-16 12:59:17

标签: ios swift event-handling uislider swift4

我有一个问题,过去一天一直困扰着我,我无法弄清楚解决方案......

我有一个If-Modified-Since,范围从1到3(这就是我们需要它的方式)。滑块是连续的,因为它实际上会根据其当前值更新某些属性。现在我想实现一个功能,其中滑块根据用户开始触摸它的动作触发动作,或者结束触摸。

我尝试使用UISlider方法来检测触摸的开始,这非常有效。但是,当我尝试使用.touchDown.touchUpInside来检测用户何时抬起他/她的手指时,该事件不会在适当的时间触发。

当我在滑块上拖动手指时,距离其起点一定距离,事件会触发。但是,当我只是短暂触摸它或移动它一小部分时,触摸事件根本不会发射......

有人可以帮我吗?这是我用来设置滑块的代码:

.touchUpOutside

1 个答案:

答案 0 :(得分:6)

您应该尝试添加.touchCancel状态以转到handleTouchUp,如下所示:

slider.addTarget(self, action: #selector(handleTouchUp), for: [.touchUpInside, .touchUpOutside, .touchCancel])