2012-06-19 3 views
3

Итак, у меня есть представление, содержащее веб-представление с содержимым HTML. Это мой код для его отображения:UIActivityIndicator с UIWebView loadRequest?

NSURL *url = [NSURL URLWithString:urlWeb]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[vue loadRequest:request]; 
vue.scalesPageToFit = YES; 

Это хорошо работает. Но, конечно, есть небольшая задержка до отображения содержимого HTML, и я хочу отобразить UIActivityIndicator в данный момент.

Я знаю, что я должен использовать:

[myActivityIndicator startAnimating]; 
[myActivityIndicator stopAnimating]; 

Единственное, что я скучаю, как знать, когда содержание HTML полностью загружается?

Спасибо за ваши советы!

ответ

11

Существует протокол, который вы можете реализовать, чтобы знать, что, UIWebViewDelegate. При реализации метода webViewDidFinishLoad вы можете знать, когда содержание полностью загружен:

Вот ваш код:

[activityIndicator startAnimating]; 

NSURL *url = [NSURL URLWithString:urlWeb]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[vue loadRequest:request]; 
vue.scalesPageToFit = YES; 

А вот методы протокола

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [activityIndicator stopAnimating]; 
} 

Не забудьте установить свой класс как делегат UIWebView перед загрузкой запроса.

+0

Работает отлично. Благодаря ! –

3

В UIWebViewDelegate методе

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [myActivityIndicator stopAnimating]; 
    //myActivityIndicator.hidden = YES; 
} 
Смежные вопросы