为什么我的UIScrollView中的WKWebview不显示? [英] Why my WKWebview inside my UIScrollView is not displayed?

查看:49
本文介绍了为什么我的UIScrollView中的WKWebview不显示?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 UIScrollView 的内容视图中添加一个 WKWebview 来加载网页内容.

I need to add a WKWebview to load web content, inside the content view of UIScrollView.

我正在使用Apple代码加载网页,我的出口 viewForWebview 已正确链接,并且调用了 didFinish .

I'm using the Apple code to load a web page, my outlet viewForWebview is linked correctly, and didFinish is called.

class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {

    var webView: WKWebView!
    @IBOutlet var viewForWebview: UIView!

    override func loadView() {
        super.loadView()
        let myConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: myConfiguration)
        webView.uiDelegate = self
        webView.navigationDelegate = self
        viewForWebview = webView
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = URL(string: "https://www.google.com.au")
        let request = URLRequest(url: url!)
        webView.load(request)
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("Finished navigating to url \(String(describing: webView.url))")
    }

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        print(error)
    }
}

但是我的WKWebview是空白的:

But my the WKWebview is blank:

为了进行测试,我尝试将WKWebview直接显示在滚动视图的内容视图中,并且可以正常工作.

Just to test, I tried to display the WKWebview directly inside the content view of the scroll view, and it works.

为什么它不能用作内容的子视图?

Why is it not working as subview of the content?

推荐答案

不要为此类操作覆盖loadView,您需要

Don't override loadView for such actions , you need

class ViewController: UIViewController, WKUIDelegate, WKNavigationDelegate {

    var webView: WKWebView!
    @IBOutlet var viewForWebview: UIView!


    override func viewDidLoad() {
        super.viewDidLoad()


        let myConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame:.zero, configuration: myConfiguration)
        webView.uiDelegate = self
        webView.navigationDelegate = self
        viewForWebview.addSubview(webView)
        webView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            webView.topAnchor.constraint(equalTo: viewForWebview.topAnchor),
            webView.bottomAnchor.constraint(equalTo: viewForWebview.bottomAnchor),
            webView.leadingAnchor.constraint(equalTo: viewForWebview.leadingAnchor),
            webView.trailingAnchor.constraint(equalTo: viewForWebview.trailingAnchor)

        ])

        let url = URL(string: "https://www.apple.com")
        let request = URLRequest(url: url!)
        webView.load(request)
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        print("Finished navigating to url \(String(describing: webView.url))")
    }

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        print(error)
    }
}

这篇关于为什么我的UIScrollView中的WKWebview不显示?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆