Работа с областью, содержащей объекты аналитической панели

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

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

Описание

В данном примере определяются значения свойств области, содержащей объекты аналитической панели, количество и типы вложенных в неё объектов, а также отображается визуальное представление данной области.

Исходный код

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

// Получаем контроллер для работы с аналитической панелью
MADashboardReportViewController *ctrl = (MADashboardReportViewController *)m_controller;
// Получаем аналитическую панель
APKap *kap = [ctrl report];
// Получаем область, содержащую объекты аналитической панели
APArea *area = [[[kap view] valueForKey:@"m_contentView"] valueForKeyPath:@"m_layout"];
NSLog(@"Индекс занимаемой строки в таблице: %d", [area row]);
NSLog(@"Индекс занимаемого столбца в таблице: %d", [area column]);
NSLog(@"Количество занимаемых строк в таблице: %d", [area rowSpan]);
NSLog(@"Количество занимаемых столбцов в таблице: %d", [area columnSpan]);
NSLog(@"Количество вложенных объектов: %d", [[area objects] count]);
// Получаем визуальное представление области, содержащей объекты аналитической панели
APAreaView *areaView = (APAreaView *)[area view];
NSLog(@"Количество занимаемых строк в таблице: %d", [[areaView area] rowSpan]);
NSLog(@"Количество занимаемых столбцов в таблице: %d", [[areaView area] columnSpan]);
// Получаем массив вложенных объектов
NSMutableArray *objects = [[areaView area] objects];
// Если в число вложенных объектов входит составной блок, то определяем его наименование
for(int i = 0; i < [objects count]; i++) {
    id object = [objects objectAtIndex:i];
    if ([object isKindOfClass:[APCompositeBlock class]]) {
        NSLog(@"Наименование составного блока: %@", [(APCompositeBlock *)object blockTitle]);
    }
}
// Устанавливаем отступы и размеры области, содержащей объекты аналитической панели
[areaView setFrame:CGRectMake(50, 50, 650, 375)];
// Удаляем все дочерние представления окна
NSArray *subviews = [self.view subviews];
for (UIView *subView in subviews) {
    [subView removeFromSuperview];
}
// Отображаем данную область
[self.view addSubview:areaView];

В результате выполнения примера в консоли браузера были выведены значения свойств области, содержащей объекты аналитической панели, количество и типы вложенных в неё объектов:

Индекс занимаемой строки в таблице: 0

Индекс занимаемого столбца в таблице: 0

Количество занимаемых строк в таблице: 1

Количество занимаемых столбцов в таблице: 1

Количество вложенных объектов: 1

Количество занимаемых строк в таблице: 1

Количество занимаемых столбцов в таблице: 1

Тип вложенного объекта: APPanel


Рассматриваемая область была отображена со смещением от левого верхнего края, шириной и высотой, равным 50, 650 и 375 пикселям соответственно:

См. также:

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