Масштабирование UIWebView

У меня есть UIWebView , который я использую для отображения различного контента, иногда HTML, а иногда PDF / Powerpoint и т. Д. (Который, по-видимому, обрабатывается тот же основной элемент управления).

Я хочу использовать базовый UIScrollView (подвид UIWebView ), чтобы захватить точную перспективу вида прокрутки и воссоздать положение прокрутки в другом ] UIWebView , таким образом синхронизируя их обоих.

Проблема, с которой я столкнулся, заключается в том, что свойство zoomScale объекта UIScrollView всегда равно 1.0 при отображении содержимого HTML (хотя при отображении содержимого PDF) zoomScale правильный).

Мне удалось обнаружить, что единственное место, где я могу получить представление о масштабе масштабирования HTML-страницы, - это метод делегата scrollViewDidEndZooming: withView: atScale: . Я обнаружил, что аргумент atScale: , по-видимому, обеспечивает относительный масштаб масштабирования по сравнению с тем, каким был масштаб масштабирования до начала операции масштабирования. Так, например, при увеличении масштаба этот аргумент равен> 1, а при уменьшении - <1, и, похоже, это относительное значение между двумя масштабами масштабирования, а не абсолютный масштаб масштабирования).

Далее я обнаружил, что, по сути, содержимое HTML и PDF обрабатывается двумя разными базовыми представлениями: есть UIWebBrowserView , который обрабатывает содержимое HTML, и UIWebPDFView для обработки отображения PDF-файлы.

Другими словами, при использовании UIWebPDFView свойство zoomScale в UIScrollView полностью надежно (например, 1.0 для уменьшено, 2.4 для увеличения, например). С другой стороны, UIWebBrowserView намного сложнее, и при запросе UIScrollView его zoomScale всегда возвращает 1.0 , но когда при получении обратного вызова делегата получает относительное значение шкалы.

Итак, мои вопросы: -

  1. Это ошибка? (Это поведение наблюдается как на iOS 4, так и на 5 из того, что я видел).

  2. Как я могу получить как zoomScale (или какое-либо другое свойство / свойства) как для содержимого HTML, так и для PDF, и получить его таким образом, чтобы состояние можно было дублировать и синхронизировать с другим UIWebView .

Я не обязан использовать zoomScale , поэтому я открыт для других предложений о том, как состояние прокрутки UIWebView может быть захвачено и воспроизведено на другом UIWebView .

9
задан Jonathan Ellis 21 November 2011 в 16:58
поделиться