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 !
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With