Ich versuche MBProgressHUD
auf UIWebView
zu zeigen. Ich versuche einen iframe in webview zu laden. Mein Spinner zeigt an, wenn Webview geladen wird, aber nicht versteckt, obwohl es in webView didFinishLoad()
zum Haltepunkt geht.MBProgressHUD nicht versteckt - Swift 3
Hier ist mein Code:
class LiveViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var liveWebView: UIWebView!
var spinnerActivity: MBProgressHUD! = nil
override func viewDidLoad() {
super.viewDidLoad()
liveWebView.delegate = self
let embededHTML = "<html><body><iframe src=\"\" width=\"100%\" height=\"500\" frameborder=\"0\" scrolling=\"no\"></iframe></body></html>" //link removed
liveWebView.loadHTMLString(embededHTML, baseURL: nil)
}
public func webViewDidStartLoad(_ webView: UIWebView){
spinnerActivity = MBProgressHUD.showAdded(to: self.view, animated: true)
spinnerActivity.label.text = "Loading"
spinnerActivity.detailsLabel.text = "Please Wait!"
spinnerActivity.isUserInteractionEnabled = false
}
public func webViewDidFinishLoad(_ webView: UIWebView){
spinnerActivity.hide(animated: true)
}
public func webView(_ webView: UIWebView, didFailLoadWithError error: Error){
spinnerActivity.hide(animated: true)
}
}
Ich bemerkte, dass webViewDidStartLoad und webViewDidFinishLoad zweimal aufgerufen wird. Bitte helfen Sie mir. Der Spinner versteckt sich einfach nicht .. Ich habe verwendet Xcode8 und Swift 3.
Edit:
Ich habe versucht, dies aber nicht funktionieren:
class LiveViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var liveWebView: UIWebView!
var spinnerActivity: MBProgressHUD! = nil
override func viewDidLoad() {
super.viewDidLoad()
liveWebView.delegate = self
let embededHTML = "<html><body><iframe src=\"\" width=\"100%\" height=\"500\" frameborder=\"0\" scrolling=\"no\"></iframe></body></html>" //link removed
liveWebView.loadHTMLString(embededHTML, baseURL: nil)
}
public func webViewDidStartLoad(_ webView: UIWebView){
MBProgressHUD.showAdded(to: self.view, animated: true)
}
public func webViewDidFinishLoad(_ webView: UIWebView){
MBProgressHUD.hide(for: self.view, animated: true)
}
public func webView(_ webView: UIWebView, didFailLoadWithError error: Error){
MBProgressHUD.hide(for: self.view, animated: true)
}
}
Siehe
Wo verstecken Sie es? – User511
@ User511 in WebView DidFailLoadWithError und WebViewDidFinishLoad – Dia
Ja, ich sah, dass meine Antwort zu überprüfen. Verberge es wie ich es erwähnt habe. – User511