Вращение UIWebView на iPad

На iPad я представляю представление на стороне "детали" контроллера разделенного представления, который в основном представляет собой только UIWebView, который загружает HTML файл в пакет приложений. Приложение поддерживает поворот и скрывает/показывает "ведущую" сторону раскола по мере необходимости.

Когда UIWebView изначально загружается в альбомном режиме, его содержимое, по-видимому, "имеет размер" правильно... содержимое выше экрана, поэтому вы можете прокручивать вертикально, но не горизонтально. (HTML-контент - это почти весь текст в стиле CSS с минимальным размером около 300x50).

Если затем вы поворачиваете экран на портрет, содержимое HTML по-прежнему выглядит как размер - вертикальная полоса прокрутки присутствует, но не горизонтальная, как это было изначально. Вращение назад к пейзажу, и все еще персиковое.

До сих пор так хорошо.

Теперь, если UIWebView изначально загружается в портретной ориентации, все также имеет "размер" (вертикальная полоса прокрутки, без горизонтали). Но, если вы поворачиваете его на пейзаж, контент внезапно получает горизонтальную полосу прокрутки, потому что один из абзацев текста шире ширины UIWebView. (Не случайно, я уверен, но этот длинный абзац идеально подходит для чуть большей ширины UIWebView, когда он ориентирован как портрет.)

Я ожидал/предполагая, что ротация iPad приведет к изменению размера фрейма UIWebView, а также при его изменении размеров, чтобы соответственно изменить его содержимое HTML. (Подумайте о том, чтобы взять окно веб-браузера и уменьшить его.) Почему это не для меня?

Я бы хотел избежать использования свойства "Scales Pages to Fit", потому что текст сжимается недетерминированно.

Ответы

Ответ 1

Просто решил мою проблему, добавив этот метатег HTML5 Viewport:

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

в головной раздел моего HTML, может быть, может быть изменен этот метатег?

Хотя моя проблема была запущена, когда мое приложение было запущено в ландшафтном режиме, а ваш в портретном режиме, это может быть общей причиной.

У меня также была еще одна смешная проблема с webView в iPad, и общее решение похоже на метатег:

iPad Simulator WebView/API Карт Google

Ответ 2

Также можно справиться с этим, поставив

[myWebView reload];

в метод shouldAutorotateToInterfaceOrientation

- но если вы подключены к 3G-соединению, это может быть медленным