Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何将标签值从高分到低分排序?_Iphone_Objective C_Ios_Xcode - Fatal编程技术网

Iphone 如何将标签值从高分到低分排序?

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个标签,我不想为它编写长代码,检查每个标签是否比其他标签大或小 提前感谢首先制作一个已排序的标签数组:

我的视图中有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