Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описывается использование градиента для условного форматирования ячеек таблицы. После его запуска выполняются следующие операции:
устанавливаются и удаляются минимальное, среднее и максимальное значения ячеек таблицы;
устанавливаются и удаляются цвета, соответствующие минимальному, среднему и максимальному значениям ячеек;
устанавливается и удаляется признак того, что градиент для условного форматирования сформирован;
устанавливается признак того, что цвет фона ячеек определяется, исходя из условного форматирования строки и столбца с помощью градиента.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
// Получаем стиль ячейки с координатами B1
NuGridCellStyle *style = [proxyDatasource gridView:[contr gridView] getStyleForCellInRow:1
column:1];
// Определяем цвета для градиента
UIColor *redColor = [UIColor colorWithRed:0.94 green:0.43 blue:0.46 alpha:1];
UIColor *yellowColor = [UIColor colorWithRed:0.96 green:0.91 blue:0.46 alpha:1];
UIColor *greenColor = [UIColor colorWithRed:0.62 green:0.86 blue:0.29 alpha:1];
// Определяем две цветовые схемы
NSMutableArray *colorsTheme = [[NSMutableArray new] autorelease];
[colorsTheme addObject:@[redColor, yellowColor, greenColor]];
[colorsTheme addObject:@[greenColor, yellowColor, redColor]];
// Используем вторую цветовую схему
[style setGradientTag:1];
// Определяем количество строк
int rowCount = [datasource gridViewRowCount:[contr gridView]];
int columnNumber = 2;
// Определяем массив значений столбцов
NSMutableArray *valueArray = [[NSMutableArray new] autorelease];
for (int i = 0; i < rowCount; ++i) {
NSObject *value = [datasource gridView:[contr gridView] valueForCellInRow:i inColumn:columnNumber];
[valueArray addObject:value];
if (valueArray.count > 0) {
// Сортируем значения в массиве
[valueArray sortUsingSelector:@selector(compare:)];
// Определяем минимальное, среднее и максимальное значения
style.minGradValue = [[valueArray objectAtIndex:0] doubleValue];
style.midGradValue = [[valueArray objectAtIndex:valueArray.count / 2] doubleValue];
style.maxGradValue = [[valueArray lastObject] doubleValue];
}
}
// Указываем, что все настройки градиента заданы
[style setIsGradientConfigured:YES];
//[style removeGradientTag]; // Дефект
// Получаем цветовую схему
NSArray *colorArray = colorsTheme[[style gradientTag]];
/* Определяем цвета, соответствующие минимальному, среднему
и максимальному значению */
[style setMinColor:colorArray[0]];
[style setMidColor:colorArray[1]];
[style setMaxColor:colorArray[2]];
[style setGradientColumnBackground:YES];
[style setGradientRowBackground:YES];
// Применяем созданный стиль
for (int i = 0; i < [datasource gridViewRowCount:[contr gridView]]; i++) {
for (int j = 0; j < [datasource gridViewColumnCount:[contr gridView]]; j++) {
[proxyDatasource gridView:[contr gridView] setStyle:style forCellInRow:i column:j];
}
}
В результате выполнения примера для ячеек таблицы было применено условное форматирование с использованием градиента:

Удалим метку, используемую для форматирования градиентом, и признак того, что градиент сформирован, добавив к примеру следующий код:
NSLog(@"Метка для условного форматирования до её удаления: %d", [style gradientTag]); // Удаляем метку, используемую для форматирования градиентом [style removeGradientTag]; NSLog(@"Метка для условного форматирования после её удаления: %d", [style gradientTag]); // Удаляем признак того, что градиент для условного форматирования сформирован [style removeIsGradientConfigured];
После выполнения примера в консоли среды разработки была выведена используемая для условного форматирования метка до и после её удаления:
Метка для условного форматирования до её удаления: 1
Метка для условного форматирования после её удаления: -1
Таблица стала иметь первоначальный вид:

Аналогичный результат получим, если удалим цвета, соответствующие минимальному, среднему и максимальному значениям ячеек таблицы:
[style removeMinColor]; [style removeMidColor]; [style removeMaxColor];
Удалим минимальное, среднее и максимальное значения ячеек таблицы:
[style removeMinGradValue]; [style removeMidGradValue]; [style removeMaxGradValue];
В результате выполнения примера ячейки стали иметь фон чёрного цвета:

См. также: