Как буферизовать PDF-страницы на CALayers в iPhone

Я работаю над приложением PDFReader. Я использую CALayer для рендеринга содержимого PDF. В настоящее время одна страница PDF отображается одновременно и отображается в видимом представлении. Я хочу буферизовать несколько страниц (скажем, одну предыдущую страницу и одна следующая страница, например) заранее, пока пользователь читает текущую страницу. Может ли кто-нибудь предложить мне лучший способ достижения этого механизма буферизации? Заранее спасибо

2 ответа

Решение

Вы можете взглянуть на это средство просмотра PDF с открытым исходным кодом для iOS, оно реализует функции, о которых вы спрашивали: http://www.vfr.org/2011/09/pdf-reader-viewer-v2-2/

Если вы хотите нарисовать некоторый контент в фоновом режиме, вы можете изучить его с помощью Grand Central Dispatch API и рисовать с помощью команд Core Graphics. Вам нужно быть осторожным с безопасностью потоков, например, проверяя / ожидая завершения рисования фона, прежде чем пытаться отправить результаты на дисплей.

Я нашел довольно полезную статью "Обработка изображений и рисование с использованием Quartz в фоновых потоках", в которой говорится, что для создания контекста рисования вы используете только потокобезопасные команды (в примере создается растровый контекст, но, очевидно, вы будете искать для создания PDF-файла). использование контекста CGPDFContextCreate или похожие).

Другие вопросы по тегам