我的目标是在webView仍在从服务器获取数据时执行活动指示
但我似乎无法找到办法。我能想到的唯一方法是关闭但是怎么做?
如果我没有添加任何活动指示器,那么它只会在白色屏幕上空白,然后在一段时间后会显示网页。这不是一个好的用户体验。
这是代码
import UIKit
class SignupWebViewController: UIViewController {
@IBOutlet var signupWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "http://www.example.com/merchants/signup")
// How Do i do a closure here?
signupWebView.loadRequest(URLRequest(url: url!))
}
}
答案 0 :(得分:2)
您必须实施UIWebViewDelegate
方法。在加载请求之前,请执行以下操作:
signupWebView.delegate = self;
并且不要忘记将其添加到ViewController
class SignupWebViewController: UIViewController, UIWebViewDelegate {
然后将您的逻辑添加到此方法中:
optional public func webViewDidStartLoad(_ webView: UIWebView) {
// show your activity indicator
}
optional public func webViewDidFinishLoad(_ webView: UIWebView) {
// hide your activity indicator
}