UIWebView가있는보기 컨트롤러가 있습니다. 사용자가 웹 페이지가로드 중임을 알 수 있도록 오른쪽 상단에 활동 표시기를 표시하고 싶습니다. 그러나 빌드 & 실행시 활동 모니터가 표시되지 않습니다.내 인터페이스에 UIActivityMonitor를 어떻게 추가합니까?
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
, 내가 파일의 소유자에 연결되어 작동 표시등 볼 수 있습니다. 모든 조언을 주셔서 감사합니다!
은 현재보기에 추가 된 activityIndicator입니다. –
NIA와 해당 UIActivityIndicatorView에 대한 '-addSubview' 호출을 사용하는 이유는 무엇입니까? – CodaFi
@CodaFi - 당신 말이 맞아요, 그럴 필요는 없었습니다. 하위 뷰를 추가 할 필요가 없습니다. 코드를 다시 사용하려는 사용자는 다음 줄을 잃게됩니다. [self.view addSubview : activityIndicator]; xCode가 일종의 변덕스럽고 잘못된 스토리 보드를 컴파일시 프로젝트에 복사하는 것으로 나타났습니다. 스토리 보드의 이름을 변경하고 프로젝트 설정에서 새 이름으로 설정하면 표시기가 기쁨으로 돌아갑니다! – eatsleeptrumpet