Ich muss den Webview-Frame programmgesteuert zurücksetzen, wenn Webview vollständig geladen hat. Delegate-Methoden hinzugefügt werden, aber WebViewDidFinishLoad wird mehrmals für eine einzelne Anfrage aufgerufen. Wie kann ich Überprüfen Sie, ob das Laden in webViewDidFinishLoad abgeschlossen ist oder nicht?Wie zu erkennen, wenn ein UIWebView vollständig in Swift geladen
0
A
Antwort
3
können Sie verwenden UIWebViewDelegate
Es gibt zwei Methoden zum Ziel zu erkennen, eine mit Erfolg und zum anderen mit Fehler
extension YourViewController: UIWebViewDelegate {
func webViewDidFinishLoad(webView: UIWebView) {
if webView.loading {
// still loading
return
}
print("finished")
// finish and do something here
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
print("didFailLoadWithError \(error?.localizedDescription)")
// error happens
}
}
Vergessen Sie nicht zu Ihrem delegate
-self
in viewDidLoad
oder in didSet
einzustellen (wie von @ Jim empfohlen)
myWebView.delegate = self
+2
Ich finde, dass es hilft, Code besser zu organisieren, wenn Sie Outlets mit 'didset' anstelle von stopfen alles in' viewDidLoad() '. – Jim
0
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var webView : UIWebView
var url = NSURL(string: "http://google.com")
override func viewDidLoad() {
super.viewDidLoad()
//load initial URL
var req = NSURLRequest(URL : url)
webView.loadRequest(req)
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
}
func webViewDidFinishLoad(webView : UIWebView) {
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
println("BB")
}
}
Hallo und willkommen bei StackOverflow. Bitte nehmen Sie sich etwas Zeit, um die Hilfeseite zu lesen, insbesondere die Abschnitte mit dem Namen ["Welche Themen kann ich hier fragen?"] (Http://stackoverflow.com/help/on-topic) und ["Welche Arten von Fragen sollte ich haben nicht fragen? "] (http://stackoverflow.com/help/dont-ask). Und, was noch wichtiger ist, lesen Sie bitte [die Checkliste für Stack Overflow-Fragen] (http://meta.stackexchange.com/q/156810/204922). Vielleicht möchten Sie auch etwas über [Minimale, vollständige und überprüfbare Beispiele] (http://stackoverflow.com/help/mcve) erfahren. – lokusking
@ priya.vr Ich aktualisiere, um zu überprüfen, ob es wirklich fertig ist – xmhafiz
@ cod3rite, Aktualisiert den Code, Problem gelöst ist, Danke –