我可以检测到UISlider的值变化事件,但现在我需要检测用户释放滑块按钮的事件。
如何检测此事件(或触摸滑块端点)?
我应该使用“touch up inside”事件进行检测吗?
谢谢。
您还可以使用 UISlider 的 UIControlEventValueChanged
。将 continuous
属性设置为 NO,以在用户完成选择值时启动。
[mySlider addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventValueChanged];
mySlider.continuous = NO;
通过 IB,您可以将“Touch Up Inside”和“Touch Up Outside”附加到 viewController 的方法/操作,以释放滑块。
或者更具编程性(可能在您的 viewController 中),您可以使用以下代码:
- (void)addTarget:(id)target action:(SEL)action
forControlEvents:(UIControlEvents)controlEvents
要检测 UIControlEventTouchUpOutside
和 UIControlEventTouchUpInside
事件是否发生在您的 UISlider 上。
参考资料
我没有使用过滑块,但是由于UISlider继承自UIView - 您肯定可以利用touchesBegan:和touchesEnded:来执行您的任务。
UIControlEventTouchDown
事件用于检测用户开始使用控件的时候。UIControlEventTouchUpInside
事件则是在用户完成使用滑块后触发。要添加这些事件,只需按照@JohnK的建议进行操作即可。