UISlider events

前端 未结 4 2092
轮回少年
轮回少年 2021-02-05 09:12

I\'m using an UISlider, its updated automatically except the user is touching the sliderbutton. therefore i did this in the function which updates automatically by an NSTimer:

相关标签:
4条回答
  • 2021-02-05 09:49

    You can use:

    - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

    to detect when the touchDown and touchUp events occur. You can set your flag accordingly.

    I'm guessing from your code snippet that you are using a UISlider as a progress meter. Have you considered using a UIProgressView instead?

    0 讨论(0)
  • 2021-02-05 09:50

    This is marked solved, and yet I'd like to add another solution to this that I feel is cleaner.

    if (!progressSlider.highlighted) {
        [progressSlider setValue: progressValue];
    }
    
    0 讨论(0)
  • 2021-02-05 09:58

    Better way to track if the user is done interacting with UISlider is to use continuous flag.

    If you want to trigger slider action only after the action is complete and user has moved his finger off it then use

    [blurSlider  addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
        blurSlider.continuous = NO;
    

    Otherwise by default its set to YES.

    [blurSlider  addTarget:self action:@selector(blurSliderChanged) forControlEvents:UIControlEventValueChanged];
        blurSlider.continuous = YES;
    
    0 讨论(0)
  • 2021-02-05 10:01

    when user touchs the slider you could set a boolean variable flag and make it NO. and in the update method check if the flag is YES or NO.

    0 讨论(0)
提交回复
热议问题