UISlider
是iOS 提供的一个系统滑动指示条,可以帮助我们快速实现需要进度展示的相关功能。我们可以通过添加滑动监听方法,来获取滑动变化。一般我们都会添加以下监听方法获取滑动监听:
[slider addTarget:self action:@selector(onSliderValueChanged:) forControlEvents:UIControlEventValueChanged];
但这种单参数的监听,只能获取到滑动值得改变,无法获取用户手势变化,这样给我们实现一些功能时带来不便。
我们可以通过添加多参数的监听,实现同时获取滑动值得变化和用户手势变化的通知:
[slider addTarget:self action:@selector(onSliderValueChanged:forEvent:) forControlEvents:UIControlEventValueChanged]
- (void)onSliderValueChanged:(UISlider*)slider forEvent:(UIEvent*)event {
UITouch *touchEvent = [[event allTouches] anyObject];
switch (touchEvent.phase) {
case UITouchPhaseBegan:
// handle drag began
break;
case UITouchPhaseMoved:
// handle drag moved
break;
case UITouchPhaseEnded:
// handle drag ended
break;
default:
break;
}
}
Link: iPhone : How to detect the end of slider drag?
Done.