WKWebView加载完成后,活动指示器不会停止旋转

问题描述 投票:0回答:1

我是Swift和iOS开发的新手,所以非常感谢你提前帮助我!

我已尝试在线和网站上的每个页面上的每个示例,一旦页面在我的WKWebview中完成加载,我就无法让我的活动指示器停止显示。

任何帮助将非常感激!谢谢!

import UIKit
import WebKit

class FirstViewController: UIViewController,     WKUIDelegate, WKNavigationDelegate {

@IBOutlet var webView: WKWebView!

@IBOutlet var activityIndicator: UIActivityIndicatorView!

override func viewDidLoad() {
    super.viewDidLoad()

    webView.uiDelegate = self

    activityIndicator.startAnimating()
    activityIndicator.isHidden = true
    activityIndicator.hidesWhenStopped = true

    let url = Bundle.main.url(forResource: "Web/bulk_material_table", withExtension: "html")!
    webView.loadFileURL(url, allowingReadAccessTo: url)
    let request = URLRequest(url: url)
    self.webView.load(request)


}

func showActivityIndicator(show: Bool) {
    if show {
        activityIndicator.startAnimating()
    } else {
        activityIndicator.stopAnimating()
    }
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    showActivityIndicator(show: false)
}

func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    showActivityIndicator(show: true)
}

func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
    showActivityIndicator(show: false)
}
}
ios swift wkwebview uiactivityindicatorview
1个回答
1
投票

只需更换

webView.uiDelegate = self

webView.navigationDelegate = self

它会工作,因为

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    showActivityIndicator(show: false)
}

WKNavigationDelegate的委托方法。

© www.soinside.com 2019 - 2024. All rights reserved.