所以我有一个包含HTML内容的Web视图的视图。这是我显示它的代码:
NSURL *url = [NSURL URLWithString:urlWeb];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[vue loadRequest:request];
vue.scalesPageToFit = YES;
这很有效。但是当然在显示HTML内容之前有一点延迟,我想在此刻显示一个UIActivityIndicator。
我知道我必须使用:
[myActivityIndicator startAnimating];
[myActivityIndicator stopAnimating];
我唯一想念的是如何知道HTML内容何时被完全加载?
感谢您的建议!
答案 0 :(得分:12)
您可以实施一个协议来了解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的委托。
答案 1 :(得分:3)
在UIWebViewDelegate
方法中,
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[myActivityIndicator stopAnimating];
//myActivityIndicator.hidden = YES;
}
答案 2 :(得分:2)
您可以使用UIWebView委托的didFinishLoading方法。 更多信息:UIWebView finished loading Event,当然还有苹果http://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html