end*_*nda 16 iphone events objective-c uislider
我正在使用UISlider,它会自动更新,除非用户触摸滑块按钮.因此我在NSTimer自动更新的功能中执行此操作:
if (!isSliderTouched) {
    [progressSlider setValue: progressValue];
}
当用户松开手指时,如何跟踪此事件的结束.只要用户与此控件交互,我想设置isSliderTouched.
编辑:这应该是情节:
方案:
UIControlEventTouchDown
UIControlEventTouchUpInside
[progressSlider addTarget:self action:@selector(sliderMoveStart) forControlEvents:UIControlEventTouchDown];
欢呼声
pwc*_*pwc 14
您可以使用:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
当检测到touchDown与touchUp事件发生.您可以相应地设置标志.
我猜你从你的代码片段中使用UISlider作为进度表.您是否考虑过使用UIProgressView?
跟踪用户是否与UISlider进行交互的更好方法是使用连续标志.
如果您只想在操作完成后触发滑块操作,并且用户已将其手指移开,则使用
[blurSlider  addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
    blurSlider.continuous = NO;
否则默认设置为YES.
[blurSlider  addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
    blurSlider.continuous = YES;
这标志着已经解决了,但是我想为此添加另一种解决方案,我觉得它更清洁.
if (!progressSlider.highlighted) {
    [progressSlider setValue: progressValue];
}