0

... 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はsliderプロパティに接続されています。

行動:

スライダーは、中央にあるはずの値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です(つまり、フロートとして)。maxを超える値を設定すると、スライダーが右端まで表示されます。minimumValueプロパティとmaximumValueプロパティを確認してください。

于 2012-09-07T17:16:22.650 に答える