我的视图中有4个标签,分数为
我怎样才能将得分从最高分到最低分?
因为我想将最高分的颜色更改为绿色,将最低分的颜色更改为红色,将两个分数更改为黄色之间
我可以使用此代码
float a = ([label1.text floatValue]);
float b = ([label2.text floatValue]);
if (a > b) { //do something }
但我有4个标签,如果每个标签比其他标签更大或更小,我不想写长标签。
提前致谢
答案 0 :(得分:1)
首先制作一个有序的标签数组:
NSArray *labels = [NSArray arrayWithObjects:label1, label2, label3, label4, nil];
NSArray *sortedLabels = [labels sortedArrayUsingComparator:^(UILabel *a, UILabel *b) {
float first = [a.text floatValue];
float second = [b.text floatValue];
if (first < second) {
return NSOrderedAscending;
else if (first > second) {
return NSOrderedDescending;
} else {
return NSOrderedSame;
}
}];
然后要获得标签的排名,只需执行
NSUInteger rank = [sortedLabels indexOfObject:aLabel];
// rank goes from 0 to 3, with 0 corresponding to lowest value and 3 corresponding to highest value