tableView가로드되는 동안 어떻게 코드를 실행해야합니까?tableView가로드되는 동안 어떻게 코드를 실행해야합니까?
while ([self.tableView reloadData]) {
do something
}
나는 테이블을로드하는 동안 UIActivityIndicator 실행을 가지고 데이터가로드 된 후 사라 싶습니다 : 이것은 내가 일 거라고 생각 것입니다. 어떤 도움
감사
tableView가로드되는 동안 어떻게 코드를 실행해야합니까?tableView가로드되는 동안 어떻게 코드를 실행해야합니까?
while ([self.tableView reloadData]) {
do something
}
나는 테이블을로드하는 동안 UIActivityIndicator 실행을 가지고 데이터가로드 된 후 사라 싶습니다 : 이것은 내가 일 거라고 생각 것입니다. 어떤 도움
감사
완전히 확실하지에 그 일을해야하지만 당신이 할 수있는 것 같습니다 :
를 내가 잘못 아니에요 경우, 메인 스레드에서 최선을 다하고 있습니다 updateFinished 그냥[activityIndicator stopAnimating].
를 호출
activityIndicator.hidesWhenStopped = true;
[activityIndicator startAnimating];
[tableView reloadData];
[self performSelector:@selector(updateFinished) withObject:nil afterDelay:0];
. 모든 스레드는 사용자의 메서드, 애니메이션, 입력 처리, 타이머 및 유사한 작업이 루프에서 실행되는 루프를 실행합니다. 일부 사용자의 코드를 실행하는 시점에서 reloadData를 호출하면 메서드가 끝난 후 실행될 테이블 애니메이션이 스케줄되고 performSelector를 지연 0으로 사용하면 종료 될 활동 표시 애니메이션이 스케줄됩니다.
그냥 테이블을로드하는 동안 활동 표시기가 실행해야 할 경우
[indicator startAnimating];
[self.tableView reloadData];
[indicator stopAnimating];
그게 당신이 UIActivityIndicator라고 표시하고 hidesWhenStopped 속성이 설정되어있는 가정 예.
당신은 일의 다른 종류를 수행 할 경우, 당신은 대부분 별도의 스레드, 파견 큐 등
더 많은 컨텍스트를 제공해야합니다. 적재가 어디에서 일어나고 있습니까? 테이블 컨트롤러의 'viewDidLoad'메소드에 있습니까? 실제로드가 시작되기 전에 활동 표시기를 시작해야하는데, 이는 백그라운드 스레드에서 수행되어야합니다. – NikosM