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")