UIWebView已加载后,不会加载活动指示器

时间:2015-05-16 04:00:59

标签: ios objective-c uiwebview

我试图让活动指示器在视图加载后停止动画。目前,视图已加载,但活动指示器不会停止循环。这是我的代码:

    UIWebView *elionWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 375, 579)];
    [self.view addSubview:elionWebView];
    elionWebView.delegate = self;

    //Start the Activity Indicator
    [self webViewDidStartLoad:elionWebView]; 

    //Load Website
    NSString* url = @"https://google.com/";
    NSURL* nsUrl = [NSURL URLWithString:url];
    NSURLRequest* request = [NSURLRequest requestWithURL:nsUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
    [self webViewDidFinishLoad:elionWebView];
    [elionWebView loadRequest:request];
}

-(void)webViewDidStartLoad:(UIWebView *)webView {
    //Start the Activity Indicator
    UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activityView.center = CGPointMake(187.5, 370);
    [activityView startAnimating];
    activityView.tag = 100;
    [self.view addSubview:activityView];
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    [self.view viewWithTag:100].hidden = YES;

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。首先,NSURLRequest实际上并未加载URL。有不同的方法来进行下载。查看NSURLConnection以获取进行同步下载的最简单方法。

其次,我建议您将UIActivityIndicatorView声明为您班级的成员变量,而不是标记视图。

UIActivityIndicatorView种用于启动和停止动画的方法。您应该使用stopAnimating来停止动画。如果您在视图上将属性hidesWhenStopped设置为YES,那么您将获得所需的行为。如果您不想在动画停止后使用指标,请使用removeFromSuperview删除它。