我试图让活动指示器在视图加载后停止动画。目前,视图已加载,但活动指示器不会停止循环。这是我的代码:
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;
答案 0 :(得分:1)
您的代码存在一些问题。首先,NSURLRequest
实际上并未加载URL。有不同的方法来进行下载。查看NSURLConnection
以获取进行同步下载的最简单方法。
其次,我建议您将UIActivityIndicatorView
声明为您班级的成员变量,而不是标记视图。
有UIActivityIndicatorView
种用于启动和停止动画的方法。您应该使用stopAnimating
来停止动画。如果您在视图上将属性hidesWhenStopped
设置为YES,那么您将获得所需的行为。如果您不想在动画停止后使用指标,请使用removeFromSuperview
删除它。