Fitz
Fitz

Reputation: 313

WebView Activity Indicator won't stop spinning - iPhone Objective-C

I would like it to stop spinning once the website finishes loading...

The code I have it:

in my .h

IBOutlet UIActivityIndicatorView *activityIndicator;

in my .m

- (void)webViewDidStartLoad:(UIWebView *)webView {
[activityIndicator startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[activityIndicator stopAnimating];
self.view = webView;
}

I then hooked it up to files owner in the nib. It spins, but doesn't stop! Any suggestions? Thanks!

Upvotes: 0

Views: 2022

Answers (3)

pre
pre

Reputation: 3506

should work the way you implemented it.

Add following code

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    [loadIndicator stopAnimating];
}

Maybe your UIWebView doesn't finish loading properly.

Upvotes: 0

jmstone617
jmstone617

Reputation: 5707

Does the web view ever actually finish loading? Set a breakpoint and see if you ever even hit that method.

And, for completeness...you do have the delegate of the webview set to your view controller, correct (I assume you do, as it starts animating, but you never know)?

There are two ways you can set the delegate of the webview. If you have it in your nib, control click on the webview and drag from the delegate property to File's Owner. Or, in viewDidLoad, just say _webView.delegate = self;

UPDATE: After our conversation, and in regards to the comments below, I just want to add this for completeness, and for anyone else who sees this in the future with the same issue. The reason your webView was getting huge after it finished loading was because you were assigning it to the view property of your view controller when you said self.view = webview. No need for that. Take that out, and you'll be fine.

Upvotes: 1

Eric
Eric

Reputation: 4061

Make sure you have the correct toggle settings on the actual UIActivityIndicatorView object in Interface Builder and make sure it's linked correctly. I believe you want "hides when stopped".

Also make sure you have the WebView Delegate implemented.

Upvotes: 0

Related Questions