我有一个包含UIWebView的视图控制器。我想在右上角显示一个活动指示器,以便用户知道网页正在加载;但是在构建和运行时,活动监视器不会显示。
我有一个名为webView的UIWebView插座和一个名为activityIndicator的UIActivityIndicatorView插座。
这是我的实施:
- (void)viewDidLoad
{
[super viewDidLoad];
webView.delegate=self;
[self.view addSubview:activityIndicator];
NSString *fullURL = @"http://www.oncologyeducation.com"; NSURL *url = [NSURL URLWithString:fullURL]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
}
- (void)viewDidUnload
{
[self setWebView:nil];
[self setActivityIndicator:nil];
[self setActivityIndicator:nil];
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation==UIInterfaceOrientationPortrait || interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) {
return NO;
} else {
return YES;
}
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
return YES;
}
-(void) webViewDidStartLoad:(UIWebView *)webView{
NSLog(@"load started");
[activityIndicator startAnimating];
activityIndicator.hidden = NO;
}
-(void) webViewDidFinishLoad:(UIWebView *)webView{
NSLog(@"load finished");
[activityIndicator stopAnimating];
activityIndicator.hidden = YES;
}
-(void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
[activityIndicator stopAnimating];
activityIndicator.hidden = YES;
}
@end
在我的故事板上,我有一个活动指示器视图,它连接到文件的所有者。感谢您提供任何建议!
答案 0 :(得分:0)
@CodaFi - 你没错,没必要。无需添加子视图。
任何想要重复使用代码的人都会失去理由:
[self.view addSubview:activityIndicator];
原来xCode表现得很糟糕,并且在编译时将错误的故事板复制到项目中。我重新命名了我的故事板,在项目设置中将其设置为新名称,并且指示器以高兴旋转!