Ios 设置WKWebView scrollView的contentInset会导致页面跳转到顶部

Ios 设置WKWebView scrollView的contentInset会导致页面跳转到顶部,ios,swift,uiscrollview,wkwebview,Ios,Swift,Uiscrollview,Wkwebview,在设置WKWebView的contentInset后,我发现如果我使用默认的滑动手势在页面之间导航,WKWebView将不会保留contentInset,只需将跳到顶部,有人知道如何解决这个问题吗?谢谢 我的示例代码: import UIKit import WebKit class ViewController: UIViewController { private lazy var webView: WKWebView = { let view = WKWebV

在设置
WKWebView
contentInset
后,我发现如果我使用默认的滑动手势在页面之间导航,
WKWebView
将不会保留
contentInset
,只需将跳到顶部,有人知道如何解决这个问题吗?谢谢

我的示例代码:

import UIKit
import WebKit

class ViewController: UIViewController {

    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
        view.scrollView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)

        view.navigationDelegate = self
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.view.addSubview(self.webView)

        if let url = URL(string: "http://www.wikipedia.org") {
            self.webView.load(URLRequest(url: url))
        }
    }

}

如果为WKWebView的滚动视图设置contentInset,则需要使用相同的值设置WKWebView的另一个属性。 view.setValue(UIEdgeInsets,forKey:“\u obseddensets”)

参考:

如果设置contentInsetAdjustmentBehavior=.automatic,则状态栏将有一个额外的边缘。您还需要将状态栏高度添加到ObsuredSets

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是状态栏(安全区域)的高度。


已选中最新的WKWebView:

现在需要添加一个额外的属性:_haveSetObsuredSets


webView.setValue(true,forKey:“\u havesetoblizedinsets”)

asemome!拯救我的一天!
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")