UIWebView加载请求时如何使用UIActivityIndicator?

4

我有一个包含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内容何时完全加载?

谢谢你的建议!

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的代理。


3
UIWebViewDelegate方法中,
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [myActivityIndicator stopAnimating];
    //myActivityIndicator.hidden = YES;
}

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接