如何将UIActivityIndi​​catorView添加到WKWebView?

时间:2017-10-19 16:33:21

标签: ios swift xcode wkwebview uiactivityindicatorview

我是Swift的新手,我需要一些帮助来实现UIActivityInidicatorView到WKWebView。它应该在网页加载时出现,并在网站加载完毕后消失。

到目前为止,这是我的代码:

import UIKit
import WebKit

class ViewController: UIViewController {

    @IBOutlet weak var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let myURL = URL(string: "https://www.google.com")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
    }
}

3 个答案:

答案 0 :(得分:1)

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {

    var webView: WKWebView!
    var activityIndicator: UIActivityIndicatorView!

    override func viewDidLoad() {
        webView = WKWebView(frame: CGRect.zero)
        webView.navigationDelegate = self
        webView.uiDelegate = self

        view.addSubview(webView)

        activityIndicator = UIActivityIndicatorView()
        activityIndicator.center = self.view.center
        activityIndicator.hidesWhenStopped = true
        activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray

        view.addSubview(activityIndicator)

        webView.load(URLRequest(url: URL(string: "http://google.com")!))
    }

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

答案 1 :(得分:0)

试试这个我希望这会对你有所帮助

import UIKit
import WebKit

 class ViewController: UIViewController, WKNavigationDelegate  {

  @IBOutlet weak var webView: WKWebView!
  @IBOutlet weak var ActivityIndicator: UIActivityIndicatorView!

  override func viewDidLoad() {
    super.viewDidLoad()
    let myURL = URL(string: "https://www.google.com")
    let myRequest = URLRequest(url: myURL!)

    webView.navigationDelegate = self

    webView.load(myRequest)

   }

   func webView(_ webView: WKWebView,didStart navigation: WKNavigation!) {
      print("Start Page Loading")
     ActivityIndicator.statAnimating()
   }

   func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
      print("Page loaded")
     ActivityIndicator.stopAnimating()
   }
}

答案 2 :(得分:0)

我终于得到了这样的工作:

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    @IBOutlet weak var webView: WKWebView!

    @IBOutlet weak var ActivityIndicator: UIActivityIndicatorView!

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

    override func viewDidLoad() {
        super.viewDidLoad()
        let myURL = URL(string: "https://www.google.com/")
        let myRequest = URLRequest(url: myURL!)
        webView.navigationDelegate = self
        webView.load(myRequest)
    }
}