繁体   English   中英

如何识别UISlider的移动是从最大值到最小值,以及从它的反之亦然?

[英]How to recognize the movement of the UISlider is from maximum to its minimum value and its Vice Versa?

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

谢谢!

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中将其值分配给滑块的默认值。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM