3

だから私はこのスライダーを私のビューに持っていて、それは最大13と最小1を持っています.スライダーを動かす方法に応じて数値が変化し、スライダーがオンになっている現在の数値を示すラベルに表示できます.

int をスライダーから文字列に変更できるようにしたい。したがって、スライダーの進行状況が 13 の場合、ラベルに「A+」、12 を「A」、11 を「A-」などと表示します。

複数のスライダーがあるために13個の「if」ステートメントを作成する必要がなく、スライダーの進行状況を確認してから数値を目的の文字グレードに変換するメソッドを作成する方法はありますか?

これがスライダーの1つのコードです

-(IBAction)sliderChanged:(id)sender{
    UISlider *slider = (UISlider *)sender;
    int progress = (int)roundf(slider.value);
    c1Grade.text = [NSString stringWithFormat:@"%d",progress];
}
// c1Grade is the label next to the slider showing the progress
4

1 に答える 1

3

文字列の配列を作成し、説明が表すインデックスに説明を配置します。@"A+"インデックス 13、"A"インデックス 12 などになります。

NSArray *gradeDescriptions = [NSArray arrayWithObjects: @"", @"F", @"D-", @"D", @"D+", @"C-", @"C", @"C+", @"B-", @"B", @"B+", @"A-", @"A", @"A+", nil];
NSString *descr = [gradeDescriptions objectAt:sliderPosition];

配列は変更されないためgradeDescriptions、一度初期化して静的変数または ivar に格納できます。

于 2012-05-23T01:20:11.630 に答える