Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIActivityIndicator with UIWebView loadRequest?

So I have a view containing a web view with HTML content. This is my code to display it :

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

This works well. But of course there is a little latency before the HTML content is displayed, and I want to display a UIActivityIndicator at this moment.

I know that I must use :

[myActivityIndicator startAnimating];
[myActivityIndicator stopAnimating];

The only thing I miss is how to know when the HTML content is completely loaded ?

Thanks for your advices !

like image 666
Damian Nils Avatar asked Dec 03 '22 03:12

Damian Nils


1 Answers

There is a Protocol that you can implement to know that, UIWebViewDelegate. If you implement the method webViewDidFinishLoad you can know when the content are completely loaded:

Here is your code:

[activityIndicator startAnimating];

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

And here is the protocol methods

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

Remember to set your class as a delegate of the UIWebView before load the request.

like image 83
Marco Pace Avatar answered Dec 25 '22 22:12

Marco Pace