2012-03-22 3 views
1

IBOutlet으로 UIActivityIndicatorView을 사용하고 있습니다. [activityView startAnimating][activityView stopAnimating]을 사용하여 제어하려고합니다.UIActivityIndicatorView 애니메이션 문제

XIB 파일에서 '숨김 중지시 숨김'및 '애니메이션'동작을 활성화했습니다.

컨트롤러 내부의 여러 사용자 동작에 대해 스피너를 움직이기를 원합니다. 그러나 처음으로 [activityView stopAnimating] 전화를 걸면 [activityView startAnimating]에 다시 응답하지 않습니다.

즉, 처음으로 [activityView stopAnimating] 전화를 건 후 회 전자가 사라 졌다는 의미입니다.

[activityView startAnimating] 전화 전에 activeView.hidden = NO;을 시도했습니다. 그러나 그것은 효과가 없습니다.

이 문제에 대한 의견이 있으십니까? 내 컨트롤러 내가 일을 수행 할로드 한 후 편집

,

do { 

    [self.activityIndicator startAnimating]; 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    [webServiceCallOperation getResults]; 

    [self.activityIndicator stopAnimating]; 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

} while (![webServiceCallOperation isValideResponse] || [webServiceCallOperation isServerError]); 

은 동일한 컨트롤러에서 나는 버튼 클릭에 대한 IBAction를있다.

- (IBAction)tappedSearchButton:(id)sender 
{  
    [self.activityIndicator startAnimating]; 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    [self tappedSearchButtonAction]; 

    [self.activityIndicator stopAnimating]; 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
} 

나는 스피너 단지 [self.activityIndicator startAnimating]; 호출 후 애니메이션을 시작하지 것으로 나타났습니다. [self tappedSearchButtonAction]; 사용하기 웹 서비스를 호출하고 검색 결과보기로 이동합니다. 스피너는 뷰를 변경하기 직전에 애니메이션을 만들기 시작합니다. 그것이 내가 그것을 보지 못한 이유입니다. 하지만 웹 서비스 호출 전에 애니메이션을 적용하고 웹 서비스 호출 중에 애니메이션을 적용해야합니다.

네트워크 활동 표시기와 동일한 동작입니다.

+0

정말 출시되지 않았습니까? 또한 메인 스레드에서만 두 번째로 시작합니다. – Ilanchezhian

+0

몇 가지 코드를 입력하십시오. 무슨 일이 일어나고 있는지 이해하기 어렵습니다. 표시기가 현재 표시된보기 아래에 있는지 확인하십시오. –

+0

예. 스피너 객체를 해제하지 않습니다. 그리고 나는 또한 문제를 알아 차렸다. 그것은 움직이는 것입니다. 하지만 [activityView startAnimating] 호출 직후에는 애니메이션이 적용되지 않습니다. 애니메이션이 시작될 때 찾지 못했습니다. 코드를 추가하여 문제를 편집했습니다. – chinthakad

답변

0

aadhira는 릴리스 확인 및 기본 스레드에서 호출 중인지 확인합니다.

[NSObject performSelectorOnMainThread:@selector(SEL) withObject:nil waitUntilDone:YES]; 
0

XIB 파일에서 애니메이션 동작을 사용하도록 설정했기 때문에 애니메이션이 시작됩니다. 그러나 당신이 그것을 처음 멈 추면, 당신이 프로그램 적으로 다시 시작할 때까지는 더 이상 움직이지 않습니다.