Требования к операционной системе: 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 пикселям соответственно:

См. также: