【发布时间】:2014-06-24 11:56:41
【问题描述】:
我想知道如何识别 UISlider 正在从最大值跟踪到最小值? 例如,我的滑块最大值和最小值 1.0 和 0.0。如何识别我的滑块从 0.0 跟踪到 1.0,反之亦然?
谢谢!
【问题讨论】:
标签: ios iphone objective-c uislider
我想知道如何识别 UISlider 正在从最大值跟踪到最小值? 例如,我的滑块最大值和最小值 1.0 和 0.0。如何识别我的滑块从 0.0 跟踪到 1.0,反之亦然?
谢谢!
【问题讨论】:
标签: ios iphone objective-c uislider
有一个 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 中监听 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;
}
【讨论】:
可以监听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
}
}
【讨论】: