更新UISlider的value属性

时间:2011-04-01 20:40:26

标签: iphone objective-c xcode

我担心这里真的很基本。有三个滑块用于控制颜色选择器的颜色。移动滑块会按预期更新值,但我无法设置其 .value 属性。

    NSLog(@"A %f %f %f",aRedValue,aGreenValue,aBlueValue);

    redSlide.value=aRedValue;
    greenSlide.value=aGreenValue;
    blueSlide.value=aBlueValue;

    NSLog(@"B %f %f %f",redSlide.value,greenSlide.value,blueSlide.value); 

给出日志

2011-04-01 21:35:00.894 col1[1264:207] A 0.500000 0.500000 1.000000
2011-04-01 21:35:00.895 col1[1264:207] B 0.000000 0.000000 0.000000

为什么会这样?将UISliders设置为托管视图控制器或 setNeedsDisplay 的属性似乎没有帮助。我在这做错了什么?

4 个答案:

答案 0 :(得分:1)

使用[redSlide setValue: aredValue];redSlide.value = aRedValue;完全相同 我认为您的UISlide是一个Interface Builder对象,但您没有将其连接到UIViewController。或者您的3色值全部为0,因为如果您未设置minimumValuemaximumValue,则默认值分别为0 et 1.

因此,要么您无法访问UISlider个对象,要么颜色值全部为0,因为如果优先级为0,则value property将为1。

答案 1 :(得分:0)

最小值或最大值是否设置为默认值以外的值? 您可以在设置之前打印出滑块值,也许还有其他内容。

[更新]我认为user288264是对的。

答案 2 :(得分:0)

Think可能在我的代码中发现了错误。该视图在类之后从NIB加载,因此它覆盖了我使用对象的最后一个值所做的任何更新。现在有三个普通的float实例变量和一个在需要时更新它们的滑块值的方法。然后,关键位是在 viewDidLoad 之后调用此方法来覆盖从NIB加载的设置。

非常感谢大家的帮助。已经坚持了几天,但你的评论总是帮助解决问题并解决它。

答案 3 :(得分:-2)

尝试:

[redSlide setValue:aredValue]; [blueSlide setValue:value]; [greenlide setValue:value];