MBProgressHUD 未隐藏 - Swift 3
MBProgressHUD not hiding - Swift 3
我正在尝试在 UIWebView
上显示 MBProgressHUD
。我正在尝试在 webview 中加载 iframe。我的微调器显示 webview 何时开始加载,但即使它到达 webView didFinishLoad()
.
中的断点也不会隐藏
这是我的代码:
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)
}
}
我注意到 webViewDidStartLoad 和 webViewDidFinishLoad 被调用了两次。
请帮我。微调器只是没有隐藏..我用过 Xcode8 和 Swift 3.
编辑:
我试过了,但还是不行:
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)
}
}
见
尝试用这个替换您的代码:
class LiveViewController: UIViewController, UIWebViewDelegate {
var isHudShow = false
@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){
if isHudShow == false
{
MBProgressHUD.showAdded(to: self.view, animated: true)
isHudShow =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)
}
}
我正在尝试在 UIWebView
上显示 MBProgressHUD
。我正在尝试在 webview 中加载 iframe。我的微调器显示 webview 何时开始加载,但即使它到达 webView didFinishLoad()
.
这是我的代码:
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)
}
}
我注意到 webViewDidStartLoad 和 webViewDidFinishLoad 被调用了两次。 请帮我。微调器只是没有隐藏..我用过 Xcode8 和 Swift 3.
编辑:
我试过了,但还是不行:
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)
}
}
见
尝试用这个替换您的代码:
class LiveViewController: UIViewController, UIWebViewDelegate {
var isHudShow = false
@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){
if isHudShow == false
{
MBProgressHUD.showAdded(to: self.view, animated: true)
isHudShow =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)
}
}