为什么不设置此UISlider的value属性更新其位置?

时间:2012-09-07 17:13:12

标签: ios cocoa-touch uiviewcontroller uislider ios6

... ViewController.h:

@property (nonatomic, strong) IBOutlet UISlider *slider;

... ViewController.m:

@synthesize slider;

- (void)viewDidLoad
{
    [super viewDidLoad];

    ...
    currentValue = 50;
    self.slider.value = currentValue;

    // Do any additional setup after loading the view, typically from a nib.
}

的.xib:

我界面中的UISlider已连接到滑块属性。

行为:

当滑块位于中间位置时,滑块一直位于右侧,值为100。我设置的动作确认currentValue的值为50.如果currentValue为50且slider.value设置为50,为什么位置不反映这个?

P.S。我试过[slider setNeedsDisplay]并且它不会影响这种行为。

更新:感谢您的快速解答!真是个傻事。我在其他地方打印出currentValue作为int,所以我现在使用以下代码设置slider.value:

self.slider.value = (float) currentValue/100;

2 个答案:

答案 0 :(得分:2)

currentValue = 50;

滑块的范围是 0 ... 100但是0 ... 1。你必须写

currentValue = 0.5;

或更改滑块的范围:

self.slider.maximumValue = 100;

答案 1 :(得分:1)

UISlider的默认范围是0.0到1.0(即作为Float)。将值设置为高于最大值将使滑块一直显示在右侧。检查minimumValue和maximumValue属性。