NetworkActivityIndi​​cator 不工作

NetworkActivityIndicator not working

我正在尝试创建一个 networkActivityIndi​​cator(在 SWIFT 中),但没有任何反应,我做了一些测试但没有任何结果。此 ActivityIndi​​cator 通常链接到 WebView。

class ViewController: UIViewController, UISearchBarDelegate, UIWebViewDelegate {

@IBOutlet weak var WebView: UIWebView!

@IBOutlet weak var SearchBar: UISearchBar!


//WebView
func WebViewDidStartLoad(WebView : UIWebView) {
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    println("Chargement")
}

func WebViewDidFinishLoad(WebView : UIWebView) {
    UIApplication.sharedApplication().networkActivityIndicatorVisible = false
    println("Fin chargement")
}

//SearchBar
func searchBarSearchButtonClicked(SearchBar: UISearchBar!) {

    SearchBar.resignFirstResponder()
    var text = SearchBar.text
    text = text.stringByReplacingOccurrencesOfString(" ", withString: "+");
    var url = NSURL(string: "https://www.google.fr/#q=".stringByAppendingString(text));
    var req = NSURLRequest(URL:url!)
    WebView.delegate = self
    self.WebView!.loadRequest(req)

}

这是适合您的完整工作代码:

import UIKit
import WebKit

class ViewController: UIViewController, UISearchBarDelegate, UIWebViewDelegate {


@IBOutlet weak var searchBar: UISearchBar!

@IBOutlet weak var webView: UIWebView!

func searchBarSearchButtonClicked(searchBar: UISearchBar!) {

    searchBar.resignFirstResponder()
    var text = searchBar.text
    text = text.stringByReplacingOccurrencesOfString(" ", withString: "+");
    var url = NSURL(string: "http://google.com/search?q=".stringByAppendingString(text));
    var req = NSURLRequest(URL:url!)
    self.webView!.loadRequest(req)
}
override func viewDidLoad() {
    super.viewDidLoad()
    self.searchBar.delegate = self
    webView.delegate = self
}
func webViewDidStartLoad(webView: UIWebView){
    UIApplication.sharedApplication().networkActivityIndicatorVisible = true
    println("Chargement")
}
func webViewDidFinishLoad(webView: UIWebView){
    UIApplication.sharedApplication().networkActivityIndicatorVisible = false
    println("Fin chargement")
   }
}

希望对您有所帮助。

在swift 4.1中,替换下面

UIApplication.sharedApplication().networkActivityIndicatorVisible = true

UIApplication.shared.isNetworkActivityIndicatorVisible = true