Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере применяются настройки условного форматирования для всей таблицы экспресс-отчёта и отображаются индикаторы роста, построенные по строкам.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Отображение экспресс-отчёта») следующий код:
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
// Получаем массив контроллеров представлений данных
NSArray *controllers =[contr dataViewControllers];
// В цикле перебираем контроллеры представления данных
for(NSObject *controller in controllers)
{
// Проверяем, используется ли текущий контроллер для представления данных в виде таблицы
if([controller isMemberOfClass:[MAGridDataViewController class]])
{
// Получаем объект представления данных в виде таблицы
MAGridDataViewController *gridController = (MAGridDataViewController *)controller;
// Получаем источник данных таблицы
GridDataViewDatasource *grid = [gridController gridDatasource];
// Проверяем, не является ли источник данных таблицы пустым
if([grid isEmpty] == NO)
{
// Получаем представление контроллера
UIView *view = [gridController view];
// Получаем массив вложенных представлений
NSArray *subviews = [view subviews];
// Перебираем в цикле вложенные представления
for(NSObject *subview in subviews)
{
// Проверяем, является ли текущее представление табличным представлением
if([subview isMemberOfClass:[NuGridView class]]) {
// Получаем объект табличного представления
NuGridView *gridView = (NuGridView *)subview;
// Получаем делегат для работы с таблицей
MAGridDelegate *delegate = (MAGridDelegate*)[gridView gridDelegate];
// Получаем прокси-источник данных
MAGridProxyDataSource *proxyDatasource = (MAGridProxyDataSource*)[delegate proxyDataSource];
// Определяем настройки условного форматирования для всей таблицы
MAConditionalFormattingScale *formatting = [[MAConditionalFormattingScale new] autorelease];
[formatting setArea: kCFAEntireTable];
// Устанавливаем тип условного форматирования
[formatting setType: kCFTSpecificColors];
// Получаем шкалу значений для строки
ValueScale *scale = [formatting scale];
// Получаем стандартную палитру цветов
NSArray *defaultPaletteColors = [[SettingsPaletteSelector palettes] objectAtIndex:0];
// Устанавливаем значение шкалы
[scale setScaleValues: defaultPaletteColors];
// Указываем количество значений в шкале
[scale setScaleSteps: [defaultPaletteColors count]];
// Указываем тип шкалы
[scale setScaleType: ValueScaleEqual];
// Получаем помощник для работы со стилями в таблице
MAStyleHelper *styleHelper = [proxyDatasource styleHelper];
// Создаём новый стиль таблицы
MAGridCellStyle *cellStyle = [MAGridCellStyle emptyStyle];
// Применяем настройки условного форматирования
[cellStyle setConditionalFormat: formatting];
// Строим индикатор роста по строкам
[cellStyle setGrowthIndicatorType: kGITByRows];
// Устанавливаем стиль таблицы
[styleHelper setGlobalConditionalFormattingStyle: cellStyle];
}
}
}
}
}
В результате выполнения примера для всей таблицы экспресс-отчёта было применено условное форматирование и отображены индикаторы роста, построенные по строкам. Для раскраски ячеек использовалась палитра, состоящая из жёлтого цвета и оттенков зелёного и красного цветов. Ячейки без данных были окрашены в серый цвет:

Теперь для задания стиля ячеек применим стиль с настройками по умолчанию. Для этого заменим строку кода:
MAGridCellStyle *cellStyle = [MAGridCellStyle emptyStyle];
на следующую строку:
MAGridCellStyle *cellStyle = [MAGridCellStyle defaultStyle];
После выполнения примера ячейки без данных будут окрашены в белый цвет. У всех ячеек, предназначенных для отображения данных, появится граница чёрного цвета:

Далее удалим настройки условного форматирования и тип индикаторов роста, добавив перед строкой:
[styleHelper setGlobalConditionalFormattingStyle: cellStyle];
следующий фрагмент кода:
// Удаляем настройки условного форматирования [cellStyle removeConditionalFormat]; // Дополнительно: // Удаляем тип индикатора роста [cellStyle removeGrowthIndicatorType];
В результате выполнения примера настройки условного форматирования и индикаторы роста в таблице будут удалены:

См. также: