2012-03-16 10 views
3

スライダがあります。これの最小値は0秒で、最大値は3分(または180秒)です。私はスライダーの値を10秒増分したい。どのように私はこれを得ることができますか?助けてください。スライダの値を10ずつ増やすには

答えて

6

- (IBAction)sliderValueChanged:(id)sender { 
    int value = (int)[self.slider value]; 
    int stepSize = 10; 
    value = (value - value % stepSize); 
    // Set the new value. 
    self.sliderValue = value; 
} 
self.sliderValue

値(よりむしろUI問題を引き起こしスライダーの基本値を変更する)を追跡するための別個の整数プロパティである

+0

'int stepSize = 10.0f;'は無意味です、 'int stepSize = 10;'で十分です。 – dreamlax

+0

well spotted sir :) –

+0

また、私はテストすることはできませんが、 'self.sliderValue = value;' sliderValueChanged: 'をトリガーしますか?その場合、スタックオーバーフローが発生します。 – dreamlax

1
[mySlider setValue:([mySlider value]+10) animated:YES]; 

スライダを新しい値に合わせてアニメーションしない場合は、「アニメーション」を「いいえ」にします。

は、スライダーの値は、あなたのビューコントローラのメソッドに IBでイベント(またはコードでUIControlEventValueChanged)に変更フックアップ...あなたは、スライダ10のステップでアップ/ダウンインクリメントしたいと仮定すると、

0

ヨーヨー場合スライダーを10の量だけ増やし、スライダーを0から18まで動かし、値を使用または表示するときは常に10を掛けます。

関連する問題