2015-04-24 6 views
0

Я хочу сделать это, когда таблица tableView прослушивает и открывает экран webView, мой прогрессBar появляется со значением 0,3. Позже он продвигается +0.1, и когда он загружается, он становится 1 и скрывает его.Индикатор выполнения при загрузке webView

Что я делаю:

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

Он загружает сразу полный прогресс в кране. Как мне это сделать? Должен ли я отключить асинхронный режим?

UPDATE

я также

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

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

, но он не работает. Он остается в каком-то положении

UPDATE 2

Они еще не называют. Я писал Println внутри этих функций и ничего напечатанных

+0

ли вы делегировать WebView? –

ответ

1

Вы бы лучше увидеть этот учебник: http://www.ioscreator.com/tutorials/progress-view-tutorial-in-ios8-with-swift

Ну, ваша ошибка в коде:

Когда «webViewDidStartLoad» будет называться то бар прогресс увеличится до 0,2%, это нормально! Потому что его исходная точка. Но когда вы собираетесь увеличиваться до 0,2 - 0,4 или 0,2 - 0,3, для этого вам нужно выполнить задачу Async. Итак, посмотрите учебник и соответствующим образом увеличьте счетчик.

Упование вы получили его!

+0

, но это не называется. Вообще! Он не печатает println, но –

0

Я просто перетаскиваю из своего webView и делегирую его с помощью viewController, и теперь он работает!

+1

Отлично! Надеюсь, вы не ошибетесь в следующий раз –

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. 
} 
Смежные вопросы