3

配列に基づく文字列で UILabel を変更したい。これが私がこれまでに持っているものです:

- (IBAction) sliderValueChanged:(UISlider *)sender {
   scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
    NSString *wholeText = @"Very Bad";
    self.scanLabel.text = wholeText;

}

「非常に悪い」だけでなく、「非常に悪い、悪い、まあまあ、良い、非常に良い」という異なる値を示したいと思います。

NSMutableArray をどこで宣言し、スライダーでどのように実装しますか?

更新: ご協力ありがとうございました! (私はスタックオーバーフローが大好きです)

4

4 に答える 4

5

これはコンパイラによってチェックされていません...しかし、あなたはいくつかのアイデアを得るかもしれません。

NSArray *texts=[NSArray arrayWithObjects:@"very Bad", @"Bad", @"Okay", @"Good", @"Very Good",nil];
NSInteger sliderValue=[sender value]; //make the slider value in given range integer one.
self.scanLabel.text=[texts objectAtIndex:sliderValue];
于 2013-01-11T20:40:03.497 に答える
3

上記のメソッドと同じクラスで宣言します。

それがと呼ばれているとしましょうwholeTexts

コードは次のようになります。

- (IBAction) sliderValueChanged:(UISlider *)sender {
    scanLabel.text = [NSString stringWithFormat:@" %.f", [sender value]];
    NSString *wholeText = [wholeTexts objectAtIndex:(wholeTexts.count - 1) * (int)(sender.value - sender.minimumValue)/(sender.maximumValue - sender.minimumValue)];
    self.scanLabel.text = wholeText;
}
于 2013-01-11T20:40:16.667 に答える
1

スライダーを使用する前に配列が作成されている限り、配列はどこにでも実装できます。iOSではスライダーの値は0〜1のみであるため、値に何かを掛けて、配列内のアイテムの数(マイナス1)と同じ数にする必要があり、それらを変換する必要があります整数に変換するため、その値を配列へのインデックスとして使用できます。このようなもの:

- (IBAction) sliderValueChanged:(UISlider *)sender {
   scanLabel.text = [myArray objectAtIndex:(int)(sender.value * 10)];

}
于 2013-01-11T20:40:53.013 に答える
1

テキスト値を配列に入れます

NSArray* array =  @[@"very Bad", @"Bad", @"Okay", @"Good", @"Very Good"];
  • スライダの最小値を 0、最大値を 4 に設定します
  • [sender value]あなたを にint変えてください。floor([sender value])

int を使用して配列からアイテムを選択します。

NSString* result = [array objectAtIndex:myInt];
于 2013-01-11T20:43:41.443 に答える