首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在加载SVProgressHUD时显示UIWebView

在加载SVProgressHUD时显示UIWebView
EN

Stack Overflow用户
提问于 2018-12-19 05:28:02
回答 2查看 512关注 0票数 0

我将UIWebView设置为ViewController中的视图。我想在网页加载时显示一个SVProgressHUD活动指示器,然后在它完成后将其关闭,但我似乎无法让它工作。网页加载良好,但该指示器从未显示过。我知道SVProgressHUD的设置是正确的和函数的,但不是在我所拥有的函数中。

我相信,因为我在IB中的场景中实际上没有一个UIWebView,而是ViewController将视图设置为一个UIWebView,所以我使用的代码不能针对它。如果我错了,请纠正我。

这是我的密码:

代码语言:javascript
复制
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()
    }
}

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-19 05:49:00

UIWebView废弃的,使用WKWebView

代码语言:javascript
复制
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()
    }
}
票数 5
EN

Stack Overflow用户

发布于 2018-12-19 05:29:56

您忘了绑定委托,因此请在下面的行中添加以下内容

代码语言:javascript
复制
webview.delegate = self

备注

不推荐使用UIWebView,所以使用WKWebView

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53845081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档