UIWebView вращение на iPad - PullRequest
       19

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

13 голосов
/ 03 сентября 2010

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

Когда UIWebView изначально загружен в альбомном режиме, его содержимое кажется «правильно» измерено ... содержимое выше экрана, поэтому вы можете прокручивать его вертикально, но не горизонтально. (Содержимое HTML - это почти весь текст, стилизованный под CSS, с небольшим изображением размером ~ 300х50 внизу.)

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

Пока все хорошо.

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

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

Я бы не хотел использовать свойство «Масштабировать страницы по размеру», потому что текст сокращается недетерминированно.

Ответы [ 2 ]

29 голосов
/ 03 сентября 2010

Только что решил эту проблему, добавив метатег HTML5 Viewport:

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

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

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

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

WebView iPad Simulator / API Карт Google, выпуск

0 голосов
/ 11 февраля 2011

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

[myWebView reload];

в метод shouldAutorotateToInterfaceOrientation

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

...