如何识别UISlider的运动是从最大值到最小值以及它的副Versa?

时间:2014-06-24 11:56:41

标签: ios iphone objective-c uislider

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

谢谢!

3 个答案:

答案 0 :(得分:1)

有一个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中将其值指定给滑块的默认值。

答案 1 :(得分:0)

您可以侦听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
    }
}

答案 2 :(得分:0)

<强>·H

追踪上一个值

@property(nonatomic,assign)    float lastValue;

<强>的.m

在ViewDidLoad中侦听UIControlEventValueChanged

[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;
}