2010-06-23 2 views
6

У меня есть вопрос о представлении для отображения многостраничных PDF-файлов в моем приложении. Я нашел решения с webview, но им не хватает возможности масштабирования и прокрутки между страницами по горизонтали. Также найдены решения, использующие Quartz2D, но та же проблема, что и выше.iPhone - просмотр PDF, как в iBooks

Есть ли способ представить PDF, как в iBooks? Вы можете увеличить масштаб изображения, перечислить между страницами по горизонтали. А также, как сделать taht с одним PDF-файлом, а не разделить PDF на страницы.

Большое спасибо.

+0

Может быть, я я ошибаюсь, но iOS4 должен иметь поддержку чтения в формате PDF. ?! –

ответ

2

Я не могу дать вам ответ, но я могу перенаправить вас к примеру проекта, который может загружать и отображать многостраничные PDF-страницы за страницей.
Чтобы быть честным, это приложение является мужественным на iBook curl effect (забудьте об этом, это частный API, никоим образом), но внутри есть класс, который отображает на странице PDF-страницы, я уверен, что если вы сыграете немного с этим кодом, CGAffineTransformMakeScale, CGAffineTransformMakeTranslation и сенсорным управлением вы сможете получить этот эффект.

Ссылка на проект:
http://blog.steventroughtonsmith.com/2010/02/apples-ibooks-dynamic-page-curl.html

+0

Эта страница действительно интересна, но я нашел ее около 5 дней назад :) Я не намерен использовать эффект скручивания страниц. Мне нужно только просмотр PDF-файлов, таких как приложение iBooks (а не электронные книги, но PDF-файлы - попробуйте, оно отображается по-разному) – rackom

2

Checkout этот образец кода от Apple:

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

Он расскажет вам, как эффективно отображать и масштабирования PDF документы.

Для пейджинга, смотрите по этой ссылке:

http://www.random-ideas.net/posts/42

между двумя из тех, кого вы должны быть все готово.

+0

Не пытайтесь использовать подход создания нескольких CATiledLayers, которые делает ZoomingPDFViewer. Это не работает. Используйте один CATiledLayer, который может перерисовываться. – steipete