Пейджинг UIScrollView с большим PDF - PullRequest
1 голос
/ 07 января 2011

Я пытаюсь создать простой UIScrollView с подкачкой страниц.И я хочу иметь возможность прокручивать большой PDF-документ, но это доставляет мне некоторые проблемы ...

Я попробовал следующие варианты:

  • Конвертировать все страницы PDF вUIImages при запуске, это работает, но очень медленно при запуске
  • Рисование страницы PDF вручную в drawRect, но опять же это было медленно ...

И я предпочитаюзагрузить все при запуске, но сделать это во время использования.

Кто-нибудь делал это недавно?Не могу найти хороший пример проекта.

Thnx!

Jelle

Ответы [ 3 ]

2 голосов
/ 07 января 2011

Ознакомьтесь с примером Apple ZoomingPDFViewer:

http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html

1 голос
/ 06 января 2013

Эта проблема является одной из самых известных проблем рендеринга PDF. Решение состоит в том, чтобы кэшировать ограниченное количество страниц PDF. Вы не можете кэшировать все страницы, когда у вас есть большие PDF-файлы из-за нехватки памяти устройств IOS.

Например, Goodreader (одно из лучших iOS PDF Reader приложений) также использует механизм кэширования. Goodreader кэширует 3 страницы, когда вы переворачиваете страницу; однако у них есть проблемы, когда вы переворачиваете страницы быстрее. Так как загрузка новых страниц требует больше времени.

Сначала вы начинаете с решения Goodreader, такого как кеширование с предыдущей, текущей и следующей страниц. Когда пользователь переворачивает страницу, вы должны кэшировать предыдущую или следующую страницу.

Если я приведу пример;

Начальная точка (загрузка двух страниц в память с фоновым потоком из-за проблем с производительностью):

prev = nil;
current = page1;
next = page2;

Когда пользователь переходит на следующую страницу;

prev = page1;
current = page2;
next = page3 //(Load into the cache);

С помощью этой логики решения у вас есть возможность загрузить более 3 страниц в вашу память

0 голосов
/ 21 января 2011

ZoomingPDFViewer здесь действительно не поможет.Он не распространяется на пейджинг и не распространяется на более быструю загрузку.Это может немного помочь: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html Нарисуйте свои PDF-файлы в пользовательском представлении.Это, кажется, самый эффективный метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...