2016-01-05 5 views
1

Я ищу способ рисовать «Линии» над UIWebView.Ничья выше UIWebView в Swift

У меня есть UIWebView, что отображение PDF file, пользователь должен иметь возможность добавлять «Линии» и «Очерки» (простой один цвет линии и т.д.) для уверен, что это может быть сделано с UIView на вершине UIWebView, но им столкнувшись с двумя логическими проблемами.

В первую очередь может быть UIView, где чертеж, быть прозрачным рядом с линиями - чтобы вы могли просматривать через него pdf?

Как я мог справиться с масштабированием в PDF, если пользователь зумомWebView, то UIView должны увеличения «друг с другом», - так рисунок остается на том же уровне spot/zoom?

Есть ли другой способ для отображения PDF и добавить чертежи/аннотации? В настоящее время я использую QLPreviewController, где я не вижу возможности добавлять какие-либо аннотации?

Есть три лучших практики для этого?

+0

Потому что 'UIWebView' может сделать эффект масштабирования для вас автоматически. Попробуйте добавить« gestureRecognizer »в верхний вид и передать один и тот же зум grecureRecognizer до вашего' UIWebView' после обработки в верхнем 'UIView'? – zcui93

+0

thats, что я пытался, но он никогда не работал 1: 1 для просмотра сверху. –

+0

@FabianBoulegue Вы нашли решение по вашему вопросу, кроме PSPDFKit? На самом деле я ищу решение для этого же. Любые ссылки или предложения будут большой помощью. –

ответ

3

PSPDFKit обрабатывает этот (и многие другие жесткие проблемы с PDF) очень хорошо. Использование веб-представления для такого рода проблем, вероятно, будет иметь много маленьких угловых случаев. Любой коммерческий продукт, который имеет нетривиальные потребности вокруг PDF-файлов, обязательно должен начинаться там. Для проектов с открытым исходным кодом у меня нет отличного ответа, кроме «да, файлы PDF очень сложны, удачи».

Это, пожалуйста, несколько отправных точек, которые могут вам помочь.

  • Вы можете отключить масштабирование с webView.scalesPageToFit = false
  • Вы можете получить текущий масштаб увеличения с помощью webView.scrollView.zoomScale
  • Я считаю, что вы можете KVO наблюдать zoomScale отслеживать его в то время как она меняется, но вы можете получить только целевое значение (что приведет к задержке).
  • Вы можете отключить масштабирование (scalesPageToFit), а затем повторно выполнить его самостоятельно с помощью UIPinchGestureRecognizer и scrollView.setZoomScale(_:animated:). Таким образом, вы могли бы лучше отслеживать изменения масштабирования. Вы также можете попытаться обработать анимацию самостоятельно с помощью CABasicAnimation, чтобы вы могли синхронизировать ее.

Мой опыт работы с видами прокрутки, просмотром веб-страниц и PDF заключается в том, что есть много маленьких забавных взаимодействий, которые удивят вас. Получение чего-то, что «вроде» работает не так сложно, но получение его действительно чистым, гладким и красивым может стать кошмаром. Вот почему я обычно рекомендую PSPDFKit для клиентов. Вы обычно тратите гораздо меньше на лицензию, чем на пользовательскую разработку.

+0

Спасибо, Роб, я думал, что может быть работа для PSPDFKit как своего хобби проекта, и я не уверен, что там цены. –