2012-08-13 57 views
0

我在UISlider中有4个值。我想,当滑块值的变化应该显示以下值UISlider更改iPhone中的值

if (slider.value==0) 
    { 
     label.text="5"; 
    } 
    else if(slider.value==1) 
    { 
     label.text="10" 
    } 
    else 
    { 
     label.text="15"; 
    } 

回答

2

您需要创建到UISlider的价值Interface Builder中改变事件的连接。您可以实现的方法,如:

- (IBAction)sliderValueChanged:(UISlider *)slider { 
    if (slider.value < 1) { 
     self.label.text = @"5"; 
    } 
    else if (slider.value < 2) { 
     self.label.text = @"10"; 
    } 
    else { 
     self.label.text = @"15"; 
    } 
} 

如果您希望通过编程挂钩的情况下,你可以使用:

[self.mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; 

注意,滑块会报告有小数位的值,所以你值等于整数的情况很少见。将逻辑改为使用如上所示的小于检查。

+0

是的,我有这样做如何显示值 – user1567956 2012-08-13 08:20:37

+0

是的,我做这样的却是露出alwyas else条件 – user1567956 2012-08-13 08:22:53

+0

我已经编辑回答。希望这会有所帮助! – 2012-08-13 08:32:01

1
if (slider.value == 0) { 

if (slider.value == 1) { 

是错的 - 你不能比较使用==浮点数(和=!)经营者 - 因为他们不是精确值。你应该做这样的事情:

if (slider.value < 0.001) { 

if (slider.value > 0.999) { 
+0

<= and > =? – Nitish 2012-08-13 09:36:46

+0

@Nitish也很好(因为它包括< and >的可能性),但写出来的时间更长。 – 2012-08-13 09:43:38