4

所以我有一个包含 HTML 内容的 web 视图的视图。这是我显示它的代码:

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

这很好用。但是在显示 HTML 内容之前当然会有一点延迟,此时我想显示一个 UIActivityIndi​​cator。

我知道我必须使用:

[myActivityIndicator startAnimating];
[myActivityIndicator stopAnimating];

我唯一想念的是如何知道 HTML 内容何时完全加载?

感谢您的建议!

4

3 回答 3

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 的委托。

于 2012-06-19T07:46:08.467 回答
3

UIWebViewDelegate方法上,

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [myActivityIndicator stopAnimating];
    //myActivityIndicator.hidden = YES;
}
于 2012-06-19T07:42:58.487 回答
2

您可以使用 UIWebView 委托的 didFinishLoading 方法。更多信息在这里:UIWebView 完成加载事件,当然还有苹果http://developer.apple.com/library/ios/documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html

于 2012-06-19T07:43:59.577 回答