How to detect the end of slider drag?

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.