как отсортировать значение метки от высокой к низкой оценке? - PullRequest
0 голосов
/ 30 марта 2012

у меня 4 ярлыка, на мой взгляд, баллы

Как я могу отсортировать баллы по возрастанию?

потому что я хочу изменить цвет самого высокого балла на зеленый, а самого низкого - на красный и 2 балла между желтым

я могу использовать этот код

float a = ([label1.text floatValue]);
float b = ([label2.text floatValue]);
if (a > b) { //do something }

но у меня есть 4 метки, и я не хочу писать длинный код для проверки каждой метки, если она больше других или меньше.

спасибо заранее

1 Ответ

1 голос
/ 30 марта 2012

Сначала создайте отсортированный массив меток:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...