Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описываются некоторые приемы работы с представлением для выбора страниц в регламентном отчете. После запуска примера выполняются следующие операции:
извлекается представление для выбора страниц в регламентном отчете;
из представления для выбора страниц извлекается размер миниатюры страницы, массив координат центров миниатюр, высота области прокрутки;
осуществляется поиск индекса страницы по заданному вертикальному отступу.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Отображение регламентного отчёта») следующий код:
// Получаем объект регламентного отчета
MAProceduralReportViewController *proceduralReportController = (MAProceduralReportViewController *)m_controller;
// Получаем массив представлений в регламентном отчете
NSArray *dataViewControllers = [proceduralReportController dataViewControllers];
// Перебираем в цикле представления регламентного отчета
for( UIViewController *controller in dataViewControllers)
{
// Проверяем, является ли текущее представление просмотрщиком листов регламентного отчета
if([controller isMemberOfClass:[MAProceduralReportDataViewController class]])
{
// Получаем представление просмотрщика листов
MAProceduralReportDataViewController *dataViewController =(MAProceduralReportDataViewController *)controller;
// Получаем представление просмотрщика регламентных отчетов
MAProceduralReportDataViewControllerBase *reportDataViewControllerBase = (MAProceduralReportDataViewControllerBase *)dataViewController;
// Получаем представление для выбора страниц
PdfPageSelector *pageSelector = [reportDataViewControllerBase pageSelector];
// Получаем размер миниатюры страницы
CGSize thumbnailSize = [pageSelector thumbnailSize];
// Выводим в консоль среды разработки высоту и ширину миниатюры страницы
NSLog(@"Высота миниатюры страницы: %f",thumbnailSize.height);
NSLog(@"Ширина миниатюры страницы: %f",thumbnailSize.width);
// Получаем массив координат центров миниатюр
NSMutableArray *coordinates = [pageSelector thumbnailsCoordinates];
// Получаем координату первой миниатюры в массиве
float coordinate = [[coordinates objectAtIndex:0] floatValue];
// Выводим в консоль среды разработки координату первой миниатюры в массиве
NSLog(@"Координата центра первой миниатюры в массиве координат центров миниатюр: %f", coordinate);
// Выводим в консоль среды разработки высоту области прокрутки
NSLog(@"Высота области прокрутки: %f",[pageSelector scrollingHeight]);
// Находим индекс страницы по заданному вертикальному отступу
int pageForCoord = [pageSelector findPageNumberForYCoord:260];
NSLog(@"Индекс страницы для отступа 260: %d",pageForCoord);
// Устанавливаем признак скрытости представления для выбора страниц
[pageSelector performSelector:@selector(setHidden:) withObject:[NSNumber numberWithBool: NO]];
}
}
В результате выполнения примера на экране мобильного устройства будет отображен регламентный отчет, для которого дополнительно отрисовано представление для выбора страниц:

Также в консоли среды разработки была выведена информация о представлении для выбора страниц в регламентном отчете:
Высота миниатюры страницы: 59.424404
Ширина миниатюры страницы: 42.000000
Координата центра первой миниатюры в массиве координат центров миниатюр: 49.712204
Высота области прокрутки: 337.122040
Индекс страницы для отступа 260: 3
См. также: