任何人都可以指出我关于 slider 的正确方向,下面的版本是我的第一次尝试(范围是 0.0 - 100.0),我得到的结果不正确。
// Version 1.0
-(IBAction)sliderMoved:(id)sender {
NSLog(@"SliderValue ... %d",(int)[sender value]);
}
// OUTPUT:
// [1845:207] SliderMoved ... -1.991753
// [1845:207] SliderMoved ... 0.000000
// [1845:207] SliderMoved ... 0.000000
// [1845:207] SliderMoved ... 32768.000435
通过下面的版本,我得到了我期望的值,我在 version_001 中缺少什么?
// Version 2.0
-(IBAction)sliderMoved:(UISlider *)sender {
NSLog(@"SliderValue ... %d",(int)[sender value]);
}
// OUTPUT:
// [1914:207] SliderMoved ... 1
// [1914:207] SliderMoved ... 2
// [1914:207] SliderMoved ... 3
// [1914:207] SliderMoved ... 4
EDIT_001:
正如物质 G 指出的那样,添加 UISlider *slider = (UISlider *)sender;
确实有效。我知道使用 sender 是惯例,但在我看来,在这种情况下,惯例不仅不太清晰,而且也更复杂和更多代码。在 IMO 看来,像 2.0 版那样静态地将方法键入 (UISlider *)
似乎是明智的。我在 slider IBAction 方法中是否忽略了使用 (UISlider *) 不起作用的情况?
干杯加里
最佳答案
尝试:
-(IBAction)sliderMoved:(id)sender {
UISlider *slider = (UISlider *)sender;
NSLog(@"SliderValue ... %d",(int)[slider value]);
}
关于iphone - UISlider 方法的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008802/