2013-10-07 2 views
0

tableViewCell 고정 문제가 있습니다. 연습 문제 목록이있는 테이블 뷰 셀이 있습니다. 다른 뷰 컨트롤러에 새로운 연습을 추가 한 다음 모든 연습 문제를 나열하는이 tableViewController로 다시 팝하면 해당 셀이 고정됩니다 (스크린 샷 참조). 그런 다음 [self.tableCell reloadData]에 전화하면 해당 셀이 새로 고침되지 않습니다.UITableViewCell이 고정되었습니다 (새 데이터로 다시 렌더링하지 않음). 어떻게 고치는 지?

불쾌한 셀이 말하자면 인덱스 # 4이고 데이터 소스가 2 개의 항목 만 갖기 때문에 4 번째 셀이 여전히 고정되어 있기 때문에 이상합니다.

https://dl.dropbox.com/u/2795448/Screenshots/ot.png

내가있는 tableView의 데이터 소스에서 데이터를 변경, 해당 셀이 여전히 모든 운동의

목록 (첫 2가 제대로 렌더링, 3은 4 셀의 기분을 상하게되고, 비어) 냉동 : 나는 중단 점을 넣으면

https://dl.dropbox.com/u/2795448/Screenshots/ou.png

하고있는 tableView를 검사, 그 냉동 세포에 대해 아무 말도하지 않습니다

를3210

https://dl.dropbox.com/u/2795448/Screenshots/ov.png

여기에서 어디로 가야할지 확실하지 않습니다. (다른 viewController에서 행을 삽입 한 다음이 위치로 다시 팝하는 경우에만 발생합니다.

의견이 있으십니까? 감사합니다 그래서 어떤 도움을 많이!

+0

내 코드도 도움이 될 수 있으면 게시 할 수 있습니다. – hurshagrawal

+1

포스트 코드를 사용하면 훨씬 빠르게 처리 할 수 ​​있습니다. –

답변

1

셀에 대한 참조를 유지하고 있습니다. 그것은 나쁜 생각입니다. 이것은 표 셀의 데이터 소스 및 재활용 패턴 전체와 모순됩니다. 모든 종류의 엉뚱한 버그가 필연적 인 결과가 될 것입니다.

대신 데이터 소스 메소드가 올바른 섹션 및 행 수와 해당 셀을 반환하는지 확인한 다음 테이블을 셀이 아닌 페이지로 다시로드하십시오.

[self.tableView reloadData]; 

예를 들어보기가 새 항목 추가에서 돌아 오는 경우 사용중인 데이터 배열이 업데이트되고 다시로드되는지 확인하십시오.

1

데이터 원본과 함께 tableview를 관리하는 방식을 정확히 이해하지 못합니다. 데이터 소스를 변경하면 동일한 변경 사항이 테이블 뷰에도 반영되어야합니다. 둘 다 동기화되어야합니다. 당신은 사용할 수 있습니다

Table reloadRowsAtIndexPaths: Table deleteRowsAtIndexPaths: Table insertRowsAtIndexPaths:

당신의 tableview와 그 세포를 변경할 수 있습니다. 또는 당신은 단지 [Table reloadData]

은 기억 호출 할 수 있습니다 : 그들은 화면에 다시 대기열에서 제거 될 때UITableViewCells의 참조를 저장하지 마십시오 - 참고로 그냥 쓰레기 일 것이다. 위의 3 가지 방법을 사용하여 세포를 변경하면 갈 수 있습니다. 무언가를 정리하고 싶다면 그냥 물어보십시오.

관련 문제