为什么在框架设置为.zero的情况下可以看到WKWebView

时间:2018-06-22 13:02:57

标签: ios swift uiview wkwebview

所以我试图以这种方式加载webView而不是Storyboard

    override func loadView() {
    let config = WKWebViewConfiguration( )
    webView = WKWebView(frame: .zero, configuration : config)


    webView.navigationDelegate = self

    view = webView


}
override func viewDidLoad() {
    super.viewDidLoad()

    let url = URL(string: "https://vk.com")!
    webView.load(URLRequest(url: url))
    webView.allowsBackForwardNavigationGestures = true 
}

显然,webView的帧为零,我应该无法在屏幕上看到任何东西,但是我看到了完整的webView窗口。请也许我没有考虑到重要的事情?

2 个答案:

答案 0 :(得分:4)

不是将webView设置为视图控制器的主视图,而是将其添加为子视图

override func loadView() {
    let config = WKWebViewConfiguration( )
    webView = WKWebView(frame: .zero, configuration : config)


    webView.navigationDelegate = self

    view = UIView()
    view.addSubview(webView)
}

默认情况下,视图控制器的view属性采用完整的高度和宽度。

答案 1 :(得分:1)

最好将WKWebView用作视图控制器的根视图。只是根视图的frame属性将被忽略,因为它是由父视图控制器或演示控制器确定的。