3

所以我在我的视图中有这个滑块,最大值为 13,最小值为 1。根据您移动滑块的方式,数字会发生变化,并且可以显示在显示滑块当前数字的标签上。

我希望能够将滑块中的 int 更改为字符串;因此,如果滑块的进度是 13,我希望标签读取“A+”,12 带有“A”,11 带有“A-”等等。

因为我有多个滑块,所以不必制作 13 个“if”语句,有没有办法制作一种方法来检查滑块的进度,然后将数字转换为所需的字母等级?

这是我其中一个滑块的代码

-(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 回答