我的代码成功地加载了我想要的网页;但是,我在加载时添加活动指示器时遇到问题。
我是swift的新手,所以我阅读了其他stackexchange的例子。我创建了一个UIActivityIndicator,在override函数中设置它,但它没有显示。
网页加载正常。下面是可运行代码。
import UIKit
import WebKit
class FeedbackWebViewController: UIViewController, WKNavigationDelegate {
let indicator = UIActivityIndicatorView(style: .gray)
var webView: WKWebView!
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
indicator.center = webView.center
indicator.hidesWhenStopped = true
webView.addSubview(indicator)
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://www.apple.com")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
self.indicator.startAnimating()
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
indicator.stopAnimating()
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
indicator.stopAnimating()
}
}
2条答案
按热度按时间im9ewurl1#
DONT覆盖loadView。可能会发生不好的事情。在didLoad中移动代码。应该能成功
qjp7pelc2#
尝试将相关的3行放到viewDidAppear而不是viewDidLoad。对我很有效。