webViewDidStartLoad 和 webViewDidFinishLoad 不工作

webViewDidStartLoad and webViewDidFinishLoad not working

我正在尝试检查网络视图是否正在加载以及是否已完成加载,当我尝试搜索它时,这是我得到的结果,但它似乎不起作用是因为我做错了什么或者他们改变它的代码?我确实为 Web 视图设置了委托,所以我认为问题不在于委托。

@IBOutlet weak var webView: UIWebView!
@IBOutlet weak var activity: UIActivityIndicatorView!

override func viewDidLoad() {
    super.viewDidLoad()
    let url = URL(string: "https://whosebug.com")

    let urlRequest = URLRequest(url: url!)
    webView.loadRequest(urlRequest)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func webViewDidStartLoad(_ webView: UIWebView){
    print("Webview started Loading")
}

func webViewDidFinishLoad(_ webView: UIWebView) {
    print("Webview did finish load")
}

您需要使您的 class 符合 UIWebViewDelegate 并将 webView 的管理委托给您的 class:

class YourClass: UIViewController, UIWebViewDelegate {
   @IBOutlet weak var webView: UIWebView!
   @IBOutlet weak var activity: UIActivityIndicatorView!

   override func viewDidLoad() {
     super.viewDidLoad()
     let url = URL(string: "https://whosebug.com")

     //!!!!!!!
     webView.delegate = self
     //!!!!!!!
     let urlRequest = URLRequest(url: url!)
     webView.loadRequest(urlRequest)
   }

   override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
       // Dispose of any resources that can be recreated.
   }

   func webViewDidStartLoad(_ webView: UIWebView){
     print("Webview started Loading")
   }

   func webViewDidFinishLoad(_ webView: UIWebView) {
     print("Webview did finish load")
   }
}

您需要在 UIWebView

中添加 "delegate"
webView.delegate = self