
Максимально простой код для воспроизвести:
Код: Выделить всё
#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
Это происходит только при запуске в альбомной ориентации.
Поворот в книжную ориентацию и обратно в альбомную исправляет эту проблему. Это исправляет даже сворачивание приложения и его повторное открытие.
Итак, можно ли что-нибудь сделать из кода, чтобы заставить его исправиться?
Я уже пробовал вызывать setNeedsLayout и LayoutIfNeeded для всего дерева WKWebView. Если задать вставки скроллера, контент будет выглядеть так, как будто у него не установлен параметр viewport-fit=cover.
Это происходит в iOS 12 и 13 (протестировано) и iOS 13 Simulator.
Подробнее здесь: https://stackoverflow.com/questions/594 ... -safe-area
Мобильная версия