5

UISlidera の開始位置(理想的には中央) を設定する方法と、1 ではなく 10 でインクリメントする方法を知っている人はいますか?

ここに私がこれまでに持っているものがあります:

// Setup custom slider images
UIImage *minImage = [UIImage imageNamed:@"ins_blueTrack.png"];
UIImage *maxImage = [UIImage imageNamed:@"ins_whiteTrack.png"];
UIImage *tumbImage= [UIImage imageNamed:@"slide.png"];

minImage=[minImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0];
maxImage=[maxImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0];

// Setup the  slider
[self.slider setMinimumTrackImage:minImage forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[self.slider setThumbImage:tumbImage forState:UIControlStateNormal];

self.slider.minimumValue = 10;
self.slider.maximumValue = 180;
self.slider.continuous = YES;

int myVal = self.slider.value;
NSString *timeValue = [[NSString alloc] initWithFormat:@"%1d", myVal];

self.timeLabel.text = timeValue;

// Attach an action to sliding
[self.slider addTarget:self action:@selector(fxSliderAction) forControlEvents:UIControlEventValueChanged];
4

3 に答える 3

4

スライダー位置の設定

あなたのコードに合わせて、あなたは以下を持つことができます:

self.slider.value = (90);

注:同じクラスからをself参照している場合は、実際には必要ありません。IBOutlet

を中間点に設定する真に動的な方法が必要な場合UISliderは、最大値を2で割るだけで、実質的に半分になります。

self.slider.value = (self.slider.maximumValue / 2);

10の倍数でインクリメント

このために、私はあなたが現在持っているものとは少し異なる何かを提案します。最小で10、最大で180の代わりに、最小で1、最大で18はどうでしょうか。

self.slider.minimumValue = 1;
self.slider.maximumValue = 18;

スライダーの値を取得するたびに、10を掛けるだけです。このようにして、スライダーは18の異なる場所に移動し(必要に応じて)、常に10の倍数を取得します。

int trueSliderValue = self.slider.value * 10;
于 2012-05-22T12:02:48.270 に答える
1

UISlider の開始位置 (理想的には中央) が必要な場合は、

slider.value = (slider.maximumValue / 2);

1 ではなく 10 でインクリメントする場合は、その最大値が必要です。スライダー値変更メソッドで、現在のスライダー値のフローリングとシーリングをチェックし、それをslider.value = new valueに設定します

于 2012-05-22T11:45:53.110 に答える