WKWebView неправильная ширина контента в альбомной ориентации с безопасной областьюIOS

Программируем под IOS
Ответить
Anonymous
 WKWebView неправильная ширина контента в альбомной ориентации с безопасной областью

Сообщение Anonymous »

Вот как это выглядит:
Изображение
Максимально простой код для воспроизвести:

Код: Выделить всё

#import "ViewController.h"
#import 

@implementation ViewController

- (void)loadView
{
WKWebView* webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:[[WKWebViewConfiguration alloc] init]];
self.view = webView;

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://apple.com"]]];
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}

@end
Это происходит только с веб-сайтами с установленным параметром viewport-fit=cover. Если вы откроете те же веб-сайты в Safari, вы увидите, что первая рамка рисования имеет ту же проблему, но после этого ее размер мгновенно изменяется правильно.

Это происходит только при запуске в альбомной ориентации.
Поворот в книжную ориентацию и обратно в альбомную исправляет эту проблему. Это исправляет даже сворачивание приложения и его повторное открытие.

Итак, можно ли что-нибудь сделать из кода, чтобы заставить его исправиться?
Я уже пробовал вызывать setNeedsLayout и LayoutIfNeeded для всего дерева WKWebView. Если задать вставки скроллера, контент будет выглядеть так, как будто у него не установлен параметр viewport-fit=cover.
Это происходит в iOS 12 и 13 (протестировано) и iOS 13 Simulator.

Подробнее здесь: https://stackoverflow.com/questions/594 ... -safe-area
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»