Как буферизовать PDF страницы на CALayers в iPhone - PullRequest
0 голосов
/ 13 сентября 2011

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

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

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

0 голосов
/ 13 сентября 2011

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

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

...