用WKWebView以编程方式添加ActivityIndi​​cator的问题,未出现

时间:2019-09-17 17:05:31

标签: swift xcode programmatically

我的代码成功加载了我想要的网页;但是,我在加载活动指示器时遇到了问题。

我是新手,因此我正在阅读其他stackexchange示例。我创建了一个UIActivityIndi​​cator,将其设置在替代功能中,但未显示。

该网页可以正常加载。这是可运行的代码。

import UIKit
import WebKit

class FeedbackWebViewController: UIViewController, WKNavigationDelegate {

    let indicator = UIActivityIndicatorView(style: .gray)

    var webView: WKWebView!

    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self

        indicator.center = webView.center
        indicator.hidesWhenStopped = true
        webView.addSubview(indicator)

        view = webView
    }
    override func viewDidLoad() {
        super.viewDidLoad()


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

        self.indicator.startAnimating()
    }


    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        indicator.stopAnimating()
    }

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

2 个答案:

答案 0 :(得分:0)

不要覆盖loadView。坏事可能发生。 在didLoad中移动代码。应该可以。

答案 1 :(得分:0)

尝试将相关的3行放入viewDidAppear而不是viewDidLoad。它对我有用。