Если вы устанавливаете contentInset для прокрутки WKWebView, вам нужно установить другое свойство WKWebview с тем же значением. view.setValue (UIEdgeInsets, forKey: "_obscuredInsets")
См.: https://opensource.apple.com/source/WebKit2/WebKit2-7600.1.4.11.10/ChangeLog
private lazy var webView: WKWebView = {
let view = WKWebView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
view.allowsBackForwardNavigationGestures = true
view.scrollView.contentInsetAdjustmentBehavior = .never
let edgeInsets = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
view.setValue(edgeInsets, forKey: "_obscuredInsets")
view.scrollView.contentInset = edgeInsets
return view
}()
Если вы установите contentInsetAdjustmentBehavior = .automatic, там будетдополнительный край строки состояния.Вам также необходимо добавить высоту строки состояния в obscuredInsets.
view.scrollView.contentInsetAdjustmentBehavior = . automatic
webView.scrollView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
webView.setValue(UIEdgeInsets(top: 50 + 44, left: 0, bottom: 0, right: 0), forKey: "_obscuredInsets")
44 - это высота строки состояния (safeArea).
Проверено самое новоеWKWebView: https://github.com/WebKit/webkit/blob/master/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
Теперь нужно добавить дополнительное свойство: _haveSetObscuredInsets
webView.setValue (true, forKey: "_haveSetObscuredInsets")