Работа с представлением данных в виде таблицы (пример 1)

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере описываются некоторые приемы работы с представлением данных в виде таблицы. После запуска примера выполняются следующие операции:

Исходный код

Для выполнения примера необходимо в теле метода executeExample  классе ViewController (см. раздел «Отображение экспресс-отчёта») разместить следующий код:

// Удаляем все дочерние представления окна
NSArray *reportSubviews = [self.view subviews];
for(UIView *subView in reportSubviews)
{
    [subView removeFromSuperview];
}
// Создаём делегат отчета
EAReportDelegateImpl *delegate = [[[EAReportDelegateImpl alloc] initWithOlapReport:m_olapReport] autorelease];
// Создаём контроллер аналитической панели
MAExpressAnalysisReportViewController *report = [[[MAExpressAnalysisReportViewController alloc] initWithDelegate:delegate] autorelease];
// Создаем объект контроллера представления данных в виде таблицы
MAGridDataViewController *gridController = [[MAGridDataViewController alloc] initWithDatasource:(GridDataViewDatasource *)delegate.gridDatasource];
// Устанавливаем признак видимости заголовка таблицы
gridController.isDataViewTitleVisible = NO;
// Устанавливаем делегат контроллера представления данных в виде таблицы
gridController.delegate = report;
// Устанавливаем дополнительные пользовательские данные
gridController.tag = kViewModeTable;
// Создаем массив контроллеров и добавляем в него контроллер представления данных в виде таблицы
NSMutableArray *controllers = [NSMutableArray array];
[controllers addObject:gridController];
// Задаем массив контроллеров представлений отчета
report.dataViewControllers = controllers;
// Удаляем представление контейнера измерений в отчете
report.splitViewController.panelViewController = nil;
// Отображаем отчет, содержащий таблицу
UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:report];
[self.view addSubview: navController1.view];
// Устанавливаем признак наличия начальной области выделения таблицы
[gridController setNoStartupSelection:NO];
if([gridController noStartupSelection] == NO)
{
    // Создаем и заполняем массив индексов столбцов
    NSMutableArray *columns = [[NSMutableArray alloc] init];
    NSNumber *number = [NSNumber numberWithInt: 1];
    [columns addObject: number];
    NSNumber *number1 = [NSNumber numberWithInt: 2];
    [columns addObject: number1];
    // Создаем и заполняем массив индексов строк
    NSMutableArray *rows = [[NSMutableArray alloc] init];
    NSNumber *number2 = [NSNumber numberWithInt: 1];
    [rows addObject: number2];
    NSNumber *number3 = [NSNumber numberWithInt: 2];
    [rows addObject: number3];
    // Создаем область выделения ячеек
    MAGridDataViewControllerSelection *selection = [MAGridDataViewControllerSelection selectionWithColumns:columns rows:rows type:@"" deductHeaderIndex: NO];
    // Задаем начальную область выделения ячеек в представлении данных в виде таблицы
    [gridController setStartupSelection:selection];
}
// Устанавливаем высоту указанной строки
[gridController setHeight:100 toRow: 1];
// Устанавливаем ширину указанного столбца
[gridController setWidth:200 toColumn: 1];
// Обновляем источник данных представления данных в виде таблицы
[[gridController gridDatasource] updateAsync];

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

Далее заменим строку кода:

MAGridDataViewController *gridController = [[MAGridDataViewController alloc] initWithDatasource:(GridDataViewDatasource *)delegate.gridDatasource];

на следующую строку:

MAGridDataViewController *gridController = [[MAGridDataViewController alloc] initWithDatasource:(GridDataViewDatasource *)delegate.gridDatasource themeUid:ttpsRed];

В результате выполнения обновленного примера на экране мобильного устройства будет отображена таблица с измененной цветовой схемой:

См. также:

Примеры использования компонентов