Внедрение PencilKit с помощью PDFKit - PullRequest
3 голосов
/ 16 января 2020

Мое приложение отображает PDF-файлы с использованием PDFKit и позволяет пользователям создавать аннотации к pdf-файлам через мой собственный код с использованием фреймворков UIKit и CoreGraphics. Поскольку я хотел бы использовать фреймворк PencilKit для улучшения аннотаций, я нахожусь в процессе реализации фреймворка PencilKit, но я обнаружил некоторые проблемы, с которыми я застрял.

Я добавил PKCanvasView к DocumentView PDFView. По сути, он работает отлично, я могу комментировать, используя инструменты PencilKit, и я могу перемещаться по страницам PDF.

Проблема появляется, когда я увеличиваю на странице PDF. Поскольку PKCanvasView не масштабируется сам по себе, а находится внутри DocumentView, аннотации к чернилам выглядят точечно. PKCanvasView не перерисовывает содержимое с новым масштабом, потому что его масштаб не изменился, и обновление contentScaleFactor, чтобы сделать рисунок более четким, не работает.

Другая проблема, в некотором роде связанная с предыдущей, поскольку приложение подгоняет каждую страницу PDF для использования всего экрана, это приводит к увеличению UIScrollView, который содержит DocumentView PDFView, зависит от размера страницы PDF. Это означает, что если я открою PDF-файл с небольшими страницами, а другой - с большими, с точки зрения размера (ширина х высота), я увижу ширину линий инструмента рисования с разными размерами, даже если я выбрал наименьшее ширина строки в PKToolPicker для обоих файлов.

Так что мне интересно, возможно ли добавить PKCanvasView и PDFView отдельно в UIViewController’s представление, чтобы они оба имели одинаковое superview, с тем же ContentSize и максимальным / минимальным уровнем масштабирования, а при панорамировании и масштабировании PKCanvasView PDFView делает то же самое.

В любом случае, если есть обходной путь, я был бы рад узнать. ;)

...