我想知道如何识别UISlider正在追踪最大值到最小值? 例如,我的滑块最大值和最小值1.0和0.0。如何识别我的滑块是从0.0跟踪到1.0,反之亦然?
谢谢!
答案 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;
}