2012-11-27 1 views
0

tableView가로드되는 동안 어떻게 코드를 실행해야합니까?tableView가로드되는 동안 어떻게 코드를 실행해야합니까?

while ([self.tableView reloadData]) { 
    do something 
} 

나는 테이블을로드하는 동안 UIActivityIndicator 실행을 가지고 데이터가로드 된 후 사라 싶습니다 : 이것은 내가 일 거라고 생각 것입니다. 어떤 도움

감사

+0

더 많은 컨텍스트를 제공해야합니다. 적재가 어디에서 일어나고 있습니까? 테이블 컨트롤러의 'viewDidLoad'메소드에 있습니까? 실제로드가 시작되기 전에 활동 표시기를 시작해야하는데, 이는 백그라운드 스레드에서 수행되어야합니다. – NikosM

답변

1

완전히 확실하지에 그 일을해야하지만 당신이 할 수있는 것 같습니다 :

를 내가 잘못 아니에요 경우, 메인 스레드에서 최선을 다하고 있습니다 updateFinished 그냥

[activityIndicator stopAnimating]. 

를 호출

activityIndicator.hidesWhenStopped = true; 
[activityIndicator startAnimating]; 

[tableView reloadData]; 

[self performSelector:@selector(updateFinished) withObject:nil afterDelay:0]; 

. 모든 스레드는 사용자의 메서드, 애니메이션, 입력 처리, 타이머 및 유사한 작업이 루프에서 실행되는 루프를 실행합니다. 일부 사용자의 코드를 실행하는 시점에서 reloadData를 호출하면 메서드가 끝난 후 실행될 테이블 애니메이션이 스케줄되고 performSelector를 지연 0으로 사용하면 종료 될 활동 표시 애니메이션이 스케줄됩니다.

2

그냥 테이블을로드하는 동안 활동 표시기가 실행해야 할 경우

[indicator startAnimating]; 
[self.tableView reloadData]; 
[indicator stopAnimating]; 

그게 당신이 UIActivityIndicator라고 표시하고 hidesWhenStopped 속성이 설정되어있는 가정 예.

당신은 일의 다른 종류를 수행 할 경우, 당신은 대부분 별도의 스레드, 파견 큐 등

관련 문제