【问题标题】:Why doesn't setting the value property of this UISlider update its position?为什么设置此 UISlider 的 value 属性不更新其位置?
【发布时间】:2012-09-01 14:24:34
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios cocoa-touch uiviewcontroller uislider ios6


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      currentValue = 50;
      

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

      currentValue = 0.5;
      

      或改变滑块的范围:

      self.slider.maximumValue = 100;
      

      【讨论】:

        猜你喜欢
        • 2011-07-24
        • 2012-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多