2010-01-16 4 views
3

일단 UITableView에 데이터가 채워지면 특정 인덱스로 스크롤하고 싶습니다. 나는 이것이 당신이하는 방법이라고 생각합니다 :iPhone - UITableView를 인덱스로 스크롤

[[self tableView] scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:3] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; 

문제는 내가 이것을 실행해야 할 때입니다. 테이블의 데이터로드가 언제 완료되었는지 어떻게 알 수 있습니까?

답변

4

우선 테이블보기의 색인 경로에 indexPathForRow:inSection:을 사용해야합니다.

테이블보기를로드 한 후에 작업을 수행하려면보기 컨트롤러의 viewDidAppear:을 사용하고 너무 빠른 경우 performSelector:withObject:afterDelay:을 사용하여 선택기를 대기열에 추가하십시오.

+0

전에 viewDidLoad를 시도했지만 너무 일찍되었습니다. viewDidAppear을 시도 할 것이다. 타이머가 너무 익숙하지 않기 때문에 차라리 타이머를 사용하지 않을 것입니다. 실제로 데이터 소스에서 모든 항목을 가져온 후에 이벤트 나 디스패치가 발생합니까? – quano

+0

아닙니다. 항목은 모두 * 가져온 것이 아닙니다. 메모리 및 프로세서 리소스를 절약하기 위해 데이터 소스/위임자가 모든 항목의 높이에 대해 조회 한 다음 표시 가능한 행에 대해서만 셀에 대해 조회합니다. 한 가지 더 방법이 있습니다 - 만약 당신이'reloadData'를 사용한다면, 당신은 메소드 호출이 반환 된 후에, 셀을 그리는 것을 포함하여 모든 업데이트가 수행되었다는 것을 확신 할 수 있습니다. 아마도 이것은 도움이 될 것입니다. –

+0

viewDidAppear 시도하고 그 작동하는 것. – quano

관련 문제