Работа с представлением для выбора страниц в регламентном отчете

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

См. также:

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