webView加载时的进度条

时间:2015-04-24 11:14:41

标签: ios swift webview progress-bar progress

我希望当tableView行点击并打开webView屏幕时,我的progressBar会显示值0.3。稍后它会进展+0.1,当它加载时它变为1并隐藏它。

我的所作所为:

progressBar.progress = 0.3
myWebView.loadHTMLString(body, baseURL: nil)
progressBar.progress = 1

立即加载完整的进度。我该怎么做?我必须关闭异步吗?

更新

我也是

func webViewDidStartLoad(webView: UIWebView) {
    progressBar.progress = 0.2
}

func webViewDidFinishLoad(webView: UIWebView) {
    progressBar.progress = 1
}

但它不起作用。它停留在某个位置

更新2

他们还没有打电话。我在这些函数中写了println而没有打印

3 个答案:

答案 0 :(得分:1)

您最好看到本教程:http://www.ioscreator.com/tutorials/progress-view-tutorial-in-ios8-with-swift

嗯,你在代码中的错误是:

当'webViewDidStartLoad'被调用时,进度条将增加到0.2%,这没关系!因为它的初始点。但是当你要增加到0.2 - 0.4或0.2 - 0.3时,你必须作为异步任务运行。所以,请查看教程并相应地增加计数器。

希望你明白了!

答案 1 :(得分:0)

我只是从我的webView拖动并使用我的viewController委托它,它现在可以正常工作了!

答案 2 :(得分:0)

试试这个

override func viewDidLoad() {
    super.viewDidLoad()

    let url = NSURL(string: "https://topdigital.agency")
    let request = NSURLRequest(url: url as! URL)
    webView.loadRequest(request as URLRequest)
    webView.delegate=self

}

func webViewDidStartLoad(_ webView: UIWebView) {

    self.progressView.setProgress(0.1, animated: false)
}


func webViewDidFinishLoad(_ webView: UIWebView) {

    self.progressView.setProgress(1.0, animated: true)
}

func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {

    self.progressView.setProgress(1.0, animated: true)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}