비행 예약의 NSArray를 사용하는 상당히 간단한 UITableView를 보유하고 있으며 예약 당 하나의 셀을 표시합니다. 최근에 고객이 일부 셀을 완전히 숨겨서 문제를 제기했습니다 (일부 경우에만이를 재현 할 수 있음). 그들을위한 공간이 있지만 거기에 틈이 있습니다.UITableView 셀이 무작위로 사라졌습니다.
표에는 머리글과 바닥 글이있어 갭을 볼 수 있습니다 (적은 요소 만있는 것은 아닙니다). 여기
예 스크린 샷 : 나는 응용 프로그램을 다시 시작하면 문제가 사라집니다 때문에 http://myflightsapp.com/images/missing-cells.png
정말, 간헐적입니다.
나는 아주 간단한 2 개의 라이너로 cellForRowAtIndexPath를 대체하여 텍스트 레이블이있는 완전히 표준 인 UITableViewCell을 반환하려고 시도했으며, 똑같은 문제를 표시하므로 문제가되는 Nib/Custom 클래스를 제외시켰다.
heightForRowAtIndexPath는 항상 상수를 반환하므로 실수로 높이가 0 인 행이 표시되지 않습니다.
테이블에는 섹션이 하나만 있습니다.
나는 numberOfSectionsInTableView 방법에 디버그를 넣었습니다 그것은 항상 내가 배운있는 내가 cellForRowAtIndexPath에서 디버그를 넣었습니다 (이 예에서는 2) 정확한 수
, 반환 것 : 1)의 경우를 테이블 뷰를 충분히 위로 드래그하여 (셀이 화면에서 사라짐) 문제가 표시되는 상황에서 테이블을 다시 스크롤 할 때 셀을 다시 그리기 위해 cellForRowAtIndexPath를 다시 호출하지 않습니다. , 문제가 없으면 (즉, 셀이 모두 표시됨) 각 셀에 대해 cellForRowAtIndexPath를 다시 호출합니다.
2) 어떤 셀에서도 '숨김'속성이 true가 아닙니다.
다른 곳에서 디버그 (예 : 임시 버튼)를 추가하면 표시되지 않는 셀에 대해 cellForRowAtIndexPath 메소드를 수동으로 호출 할 수 있으며 올바른 셀인 것으로 보이는 셀을 반환합니다.
제 질문은보고있는 문제를 일으키는 원인은 무엇입니까? 문제가있는 곳을보기 위해 디버그를 할 곳이 부족합니다.
큰 도움을 주시면 감사하겠습니다. 무엇이 누락 되었습니까?
흥미로운 생각이지만, 매번 (셀을 대기열에서 제외 해제하지 않고 시도 할 때마다 새 셀을 생성하여 강제로) 레크리에이션을 시도했습니다. 또한 이것이 2 개의 세포에서 일어난다 고 나는 생각하지 않는다. – schofs