NSFetchedResultsController에서 데이터를 수신하는 UITableView가 있습니다. NSFetchedResultsController의 데이터는 네트워크 호출에 의해 때때로 업데이트됩니다. 네트워크 호출에서 데이터가 업데이트 될 때마다 새 항목을 추가하기 위해 [tableView reloadData]로 UITableView를 업데이트합니다.Reload UITableView UITableViewCells 위치를 변경하지 않고 데이터
또한 내 UI의 일부로 셀의 가로 방향 위치를 변경할 수 있습니다. 테이블의 데이터가 새로 고침 될 때마다 이러한 셀의 위치를 다시 지정하지 못하게하고 싶지만 불행히도 [tableview reloadData]는이를 수행합니다.
행의 위치를 변경하지 않고 테이블 뷰의 데이터를 업데이트하는 가장 좋은 방법은 무엇입니까? 내가 tableview의 reloadData 메소드를 오버라이드하고 거기서 멋진 것을 만들거나 아마도 tableview 셀 layoutSubviews 메소드를 오버라이드해야할까요?
내가 그렇게 같은 셀의 위치를 다음 NSFetched이 컨트롤러는 네트워크 호출에서 더 많은 데이터를 수신 결과 후 그것의 대리인의 메소드를 호출,
CGRect newFrame = cell.frame;
newFrame.origin.x = -cell.frame.size.width;
cell.frame = newFrame;
을 : 의 tableview를 호출
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.eventTableView reloadData];
}
: cellForRowAtIndexPath :과 dequeue에서 반환 된 셀의 원점은 (0,0)
입니다. 0
구체적으로 기재 할 수 있습니까? 아마도 다른 위치를 제안하기가 힘들 기 때문에이 위치 변경이 어떻게 일어나는지에 대한 코드를 게시하십시오. – Dima
@Dima 대부분의 코드는 Apple의'[tableView reloadData]'구현에서 발생하기 때문에 게시 할 코드가별로 없습니다. 프레임을 수정하여 셀을 이동시키고'[tableView reloadData]를 호출하면 [tableView dequeueReusableCellWithIdentifier : CellIdentifier]에서 반환 된 셀의 원점은 (0, 0)입니다. – johnnyman727
더 나은 방법이있을 수 있습니다,하지만 세포에 대한 사용자 정의보기를 만드는 방법에 대한 다음 셀이 업데이 트를 수신하고 자체를 업데이 트합니까? – Brian