我使用的是一个UISlider,它是自动更新的,除非用户正在触摸滑块按钮。因此,我是在由NSTimer自动更新的函数中这样做的:
if (!isSliderTouched) {
[progressSlider setValue: progressValue];
}当用户松开手指时,如何跟踪此事件的结束。只要用户与此控件交互,我希望设置isSliderTouched。
编辑:这应该是情节:
YES
溶液
UIControlEventTouchDown
UIControlEventTouchUpInside
[progressSlider addTarget:self action:@selector(sliderMoveStart) forControlEvents:UIControlEventTouchDown];干杯,恩多
发布于 2011-01-12 04:38:56
您可以使用:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
若要检测touchDown和touchUp事件何时发生,请执行以下操作。您可以相应地设置您的国旗。
我猜从您的代码片段中可以猜到,您正在使用UISlider作为进度表。你考虑过用UIProgressView代替吗?
发布于 2013-03-09 16:29:01
这是标记解决,但我想添加另一个解决方案,我觉得更干净。
if (!progressSlider.highlighted) {
[progressSlider setValue: progressValue];
}发布于 2013-10-05 13:47:21
跟踪用户是否与UISlider交互的更好方法是使用连续标志。
如果您只想在操作完成后才触发滑块操作,并且用户已将手指从其上移开,则使用
[blurSlider addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
blurSlider.continuous = NO;否则,默认情况下将其设置为“是”。
[blurSlider addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
blurSlider.continuous = YES;https://stackoverflow.com/questions/4664506
复制相似问题