ios - UIWebView 加载时显示 SVProgressHUD
问题描述
我有一个UIWebView
集合作为ViewController
. 我想SVProgressHUD
在网页加载时显示一个活动指示器,然后在它完成后将其关闭,但我似乎无法让它工作。网页加载正常,但指示器从未显示。我知道SVProgressHUD
是设置正确和功能,但不是我拥有的功能。
我相信因为我在 IB 的场景中实际上没有 a UIWebView
,而是ViewController
将视图设置为 a UIWebView
,所以我使用的代码无法定位它。如果我错了,请纠正我。
这是我的代码:
import UIKit
import SVProgressHUD
class ViewController: UIViewController, UIWebViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: "https://www.google.com") {
let webView = UIWebView(frame: self.view.frame)
let urlRequest = URLRequest(url: url)
webView.loadRequest(urlRequest as URLRequest)
webView.scalesPageToFit = true;
webView.scrollView.showsHorizontalScrollIndicator = false;
webView.scrollView.showsVerticalScrollIndicator = false;
self.view.addSubview(webView)
}
}
func webViewDidStartLoad(_ webView: UIWebView) {
SVProgressHUD.show()
}
func webViewDidFinishLoad(_ webView: UIWebView) {
SVProgressHUD.dismiss()
}
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
SVProgressHUD.dismiss()
}
}
任何帮助是极大的赞赏。
解决方案
UIWebView
已弃用,请使用WKWebView
import UIKit
import WebKit
import SVProgressHUD
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let url = URL(string: "https://www.google.com") {
let webView = WKWebView(frame: self.view.frame)
webView.navigationDelegate = self
self.view.addSubview(webView)
webView.load(URLRequest(url: url))
SVProgressHUD.show()
}
}
}
extension ViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
print(error.localizedDescription)
SVProgressHUD.dismiss()
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("finish to load")
SVProgressHUD.dismiss()
}
}
推荐阅读
- python - 如何更改 Pandas 查找自己文件的位置(特别是 parsers.pyx)?
- python - 使用延续令牌连接到 azure-datalakes 时出错
- azure-language-understanding - LUIS 中的问题
- html - 如何使用 *ngFor 下面提到的附图
- angular - 如何动态添加垫扩展面板?
- sql-server - 按订单金额计算销售数量
- jhipster - 如何在 JHipster(版本 6.0.1)中配置 oauth2?
- javascript - 如何识别真正的点击
- fortran - Fortran(重新)分配分配和 gfortran 警告
- android - EditText 在 RecyclerView 上丢失其内容。如何恢复其内容?