我担心这里真的很基本。有三个滑块用于控制颜色选择器的颜色。移动滑块会按预期更新值,但我无法设置其 .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 的属性似乎没有帮助。我在这做错了什么?
答案 0 :(得分:1)
使用[redSlide setValue: aredValue];
与redSlide.value = aRedValue;
完全相同
我认为您的UISlide
是一个Interface Builder对象,但您没有将其连接到UIViewController
。或者您的3色值全部为0,因为如果您未设置minimumValue
或maximumValue
,则默认值分别为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];