UISlider问题 - 如何在iOS中检测用户释放滑块按钮?

5

我可以检测到UISlider的值变化事件,但现在我需要检测用户释放滑块按钮的事件。

如何检测此事件(或触摸滑块端点)?

我应该使用“touch up inside”事件进行检测吗?

谢谢。


1
虽然不是完美的解决方案,但如果您不需要跟踪更改,则可以关闭滑块的连续属性。这将为您提供一个事件,并在用户释放滑块时触发。 - Hemant
4个回答

3

您还可以使用 UISlider 的 UIControlEventValueChanged。将 continuous 属性设置为 NO,以在用户完成选择值时启动。

[mySlider addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventValueChanged];
mySlider.continuous = NO;

2

通过 IB,您可以将“Touch Up Inside”和“Touch Up Outside”附加到 viewController 的方法/操作,以释放滑块。

或者更具编程性(可能在您的 viewController 中),您可以使用以下代码:

- (void)addTarget:(id)target action:(SEL)action 
                   forControlEvents:(UIControlEvents)controlEvents  

要检测 UIControlEventTouchUpOutsideUIControlEventTouchUpInside 事件是否发生在您的 UISlider 上。

参考资料


2

我没有使用过滑块,但是由于UISlider继承自UIView - 您肯定可以利用touchesBegan:和touchesEnded:来执行您的任务。


0

UIControlEventTouchDown事件用于检测用户开始使用控件的时候。UIControlEventTouchUpInside事件则是在用户完成使用滑块后触发。要添加这些事件,只需按照@JohnK的建议进行操作即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接