如何识别UISlider的运动是从最大值到最小值,反之亦然



我想知道如何识别UISlider正在跟踪到最大值到最小值?例如,我的滑块最大值和最小值分别为1.0和0.0。我如何确定我的滑块是从0.0跟踪到1.0,反之亦然?

谢谢!

有一个名为value changed的UISlider事件。使用该事件并计算差异。如果差是正的,那么它趋向最大值,否则它趋向最小值。使用下面的动作方法。

- (IBAction)sliderdidchanged:(UISlider *)sender {
    if (sliderOldValue - sender.value > 0) {
      NSLog(@"Value Decreasing");
    }
    else {
     NSLog(@"Value Increasing");
    }
    sliderOldValue = sender.value;
}

不要忘记在你的xib或Storyboard中从UISlider对象引用这个方法。同时声明sliderOldValue为实例变量,并在viewDidLoad中将其值赋给滑动条的默认值。

.h

跟踪最后值

@property(nonatomic,assign)    float lastValue;

m

在ViewDidLoad中监听uicontroleventvaluechange

[yourSlider addTarget:self
                action:@selector(mySliderValueChanged:)
      forControlEvents:UIControlEventValueChanged];
定义方法
- (IBAction)mySliderValueChanged:(UISlider *)sender {
    float currentValue = sender.value;
    if (currentValue>self.lastValue) {
        NSLog(@"moving Right");
    }
    else{
        NSLog(@"moving Left");
    }
    self.lastValue = sender.value;
}

可以监听ValueChanged控件事件

[slider_ addTarget:self action:@selector(sliderMove:) forControlEvents:UIControlEventValueChanged];
...
- (void) sliderMove:(UISlider*)slider
{
    if (slider.value == slider.minimumValue) {
        // etc...
    }
    else if (slider.value == slider.maximumValue) {
        // so on and so forth
    }
}

最新更新