2012-05-16 2 views
3

"테이블"의 마지막 셀에 "로드 중"셀을 하드 코딩했습니다. 생성 될 때 웹 서비스에서 새 데이터를로드하는 메소드를 호출하고 응답을 받으면 데이터를 저장하고 통지를 보내고 reloadData를 내 테이블 뷰에 호출하십시오.동적 UITableView의 ContentOffset

내 테이블의 첫 번째 셀과 동일한 작업을 수행하고 싶습니다.

내 테이블이 시간의 함수이므로, 아래로 스크롤하면 나중의 항목이 표시됩니다. 사용자가 더 높은 곳으로 스크롤하고 이전 항목을로드하게하는 것이 아이디어입니다.

이 로딩 셀을 숨기기 위해 초기 오프셋을 성공적으로 설정할 수 없습니다. 표시되면 초기 데이터로드가 시작될 수 있기 때문입니다. 나는 scrollToRowAtIndexPath:atScrollPosition:animated:을 알고 있지만 적절한 장소를 찾을 수 없습니다 (색인 경로 : 1 : 0 행 1 섹션 0).

앞서 언급했듯이 모든 셀이 만들어지기 전에이 보이는 부분을 설정해야합니다.

누구나 테이블보기 시작시이 종류의 셀을 사용 했습니까?

첫 번째 셀을로드하기 전에 호출하기 전에 테이블보기의 초기 표시 섹션을 어떻게 설정할 수 있습니까?

내가 여기에 뭔가 더해야할까요? TableviewHeader를 가지고있는 것과 마찬가지로 인덱스 경로 0 : 0에 행을 삽입하고 reloadTable을 수행 한 후 제거합니다.

답변

5

콘텐츠 오프셋을 viewDidLoad에 사용하지 않았습니다.

[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 

인덱스 경로에서 행 [0,0] I는 인셋을 다시 생성하고,이 I가 다시 그 삽입물을 넣어 테이블 뷰 reloadData 메시징 전에 tableView:cellForRoWAtIndexPath:

[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)]; 

마다 일어나는 :

- (void)reload{ 
    [self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 
    [self.tableView reloadData]; 
} 

이 새로운 데이터에 와서 테이블 다시로드 내가 다시 오프셋 넣을 때가 볼 때 내로드 셀은 오직 화면에 앉아 의미합니다.

관련 문제