Iphone 如何将标签值从高分到低分排序?
我的视图中有4个标签保存分数 我如何将分数从最高分到最低分进行排序 因为我想把最高分数的颜色改成绿色,最低分数的颜色改成红色,两个分数在黄色之间 我可以使用这个代码Iphone 如何将标签值从高分到低分排序?,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我的视图中有4个标签保存分数 我如何将分数从最高分到最低分进行排序 因为我想把最高分数的颜色改成绿色,最低分数的颜色改成红色,两个分数在黄色之间 我可以使用这个代码 float a = ([label1.text floatValue]); float b = ([label2.text floatValue]); if (a > b) { //do something } 但是我有4个标签,我不想为它编写长代码,检查每个标签是否比其他标签大或小 提前感谢首先制作一个已排序的标签数组:
float a = ([label1.text floatValue]);
float b = ([label2.text floatValue]);
if (a > b) { //do something }
但是我有4个标签,我不想为它编写长代码,检查每个标签是否比其他标签大或小
提前感谢首先制作一个已排序的标签数组:
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