Почему мой WKWebview внутри моего UIScrollView не отображается? - PullRequest
0 голосов
/ 09 января 2019

Мне нужно добавить WKWebview для загрузки веб-контента внутри представления контента UIScrollView.

enter image description here

Я использую код Apple для загрузки веб-страницы, моя розетка viewForWebview связана правильно, и didFinish называется.

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 пуст:

enter image description here

Просто для проверки я попытался отобразить WKWebview непосредственно внутри представления содержимого представления прокрутки, и оно работает.

Почему он не работает как подпредставление контента?

1 Ответ

0 голосов
/ 09 января 2019

Не переопределяйте loadView для таких действий, вам нужно

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

enter image description here

...