Изменение ориентации вызывает изменение размера шрифта

0

У меня есть UIWebView встроенный в UIViewController и у меня возникает UIViewController то действительно странное поведение, когда устройство повернуто. Мой текст имеет размер шрифта (в css) в 11px, но когда я поворачиваюсь в 19px размер шрифта изменяется до 19px (в соответствии с Safari), и я не могу понять, откуда этот повторный расчет. Даже незнакомец, другой (однострочный) div прямо над ним имеет размер шрифта 10 10px и не изменяется.

У меня есть что-то вроде этого:

<div class="date">Sep 16</div>
<div class="body"><span class="bold">blah:</span> blah, blah</div>

С css что-то вроде:

div.date {
    font-size: 10px;
    font-weight: bold;
    width: 100%;
}

div.body {
    font-size: 11px;
    width: 100%;
}

body меняет размер, а date - нет. Я не уверен, что проблема в HTML/CSS или с настройками в UIWebView.

Есть идеи?

Теги:
uiwebview

2 ответа

1

Safari автоматически изменяет размеры окна просмотра при изменении ориентации и будет принимать некоторые ограничения с элементами в корневом <body>.

Цель Safari состоит в том, чтобы заполнить экран контентом, поэтому, если ваш контент не заполняет пробел, Safari увеличит некоторые элементы для его заполнения.

Вы можете установить некоторые атрибуты, такие как minimum-scale и maximum-scale а также установить размер width viewport если вы хотите определенного поведения.

  • 0
    Я попытался установить minimum-scale , maximum-scale , initial-scale и user-scalable=no никакого эффекта. Досадно, что если вы находитесь в альбомной ориентации перед загрузкой вида, она выглядит хорошо, но если вы затем переключитесь в портретную (выглядит нормально - без масштабирования), а затем обратно в альбомную, все снова облажается!
  • 0
    Mobile Safari загружен такими забавными причудами, как это ... Я бы просто поместил все в блок div если это решит это за вас.
Показать ещё 1 комментарий
0

Вы можете снова загрузить WebView во время ориентации. Это работает для меня.

Используйте ниже методы в вашем ViewController:

- (void)viewWillLayoutSubviews {
  [super viewWillLayoutSubviews];
  [self.view setNeedsUpdateConstraints];
}

- (void)updateViewConstraints {
  [super updateViewConstraints];
  [yourWebView loadHTMLString:yourHTMLString baseURL:nil];
}

Лучшая удача!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню