0

...视图控制器.h:

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

...视图控制器.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,为什么位置没有反映这一点?

PS 我试过 [slider setNeedsDisplay] 并没有影响这种行为。

更新:感谢您的快速回答!多么愚蠢的事情。我将 currentValue 作为 int 在别处打印出来,所以我现在使用以下代码设置 slider.value:

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

2 回答 2

2
currentValue = 50;

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

currentValue = 0.5;

或更改滑块的范围:

self.slider.maximumValue = 100;
于 2012-09-07T17:18:05.657 回答
1

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

于 2012-09-07T17:16:22.650 回答