检查请求是否在UIWebView中加载

时间:2013-04-06 08:02:36

标签: objective-c cocoa-touch uiwebview

我有一个UIWebview,我正在从服务器加载一个URL。一切都运行良好,但页面在Web视图中加载缓慢。在加载时,我必须显示一个活动指示器。

我做了:

 NSURL *urlStr = [NSURL URLWithString:myURLString];

 NSURLRequest *req = [NSURLRequest requestWithURL:urlStr];

[webView loadRequest:req];

我添加了一个这样的活动指标:

activityIndicator = [[UIActivityIndicatorView alloc]init];
activityIndicator.activityIndicatorViewStyle=UIActivityIndicatorViewStyleGray;


activityIndicator.frame=CGRectMake(webView.center.x,webView.center.y - 150, 60, 60);
[webView addSubview:activityIndicator];

我什么时候开始和停止制作动画?

2 个答案:

答案 0 :(得分:2)

为此,您需要实施UIWebView Delegate

你可以在 -

开始
- (void)webViewDidStartLoad:(UIWebView *)webView

并且可以完成 -

如果成功 -

- (void)webViewDidFinishLoad:(UIWebView *)webView

如果失败 -

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error

答案 1 :(得分:2)

-(void)webViewDidStartLoad:(UIWebView *)webView
{

    [activityIndicator startAnimating];
    activityIndicator.hidden = NO;

}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{



    [activityIndicator stopAnimating];
    activityIndicator.hidden = YES;

}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{

    [activityIndicator stopAnimating];
    activityIndicator.hidden = YES;

}

我认为这会对你有所帮助。