2014-12-23 4 views
0

heightForRowAtIndexPath이 내 tableView의 마지막 셀과 먼저 작동한다는 것이 이상하다는 것을 알기 때문에이 질문을드립니다.heightForRowAtIndexPath가 호출되는 순서는 무엇입니까?

여기에 제가 가진 것은 13 개 섹션이고 각 섹션에는 하나의 셀만 있습니다. 따라서 reloadData을 호출하고 indexPath.sectionheightForRowAtIndexPath에 기록하면 마지막 섹션의 indexPath가 인쇄됩니다. 그런 다음 섹션 0부터 1, 2, 3에서 11까지 순차적으로 시작합니다.

이 두 장치 모두 & 시뮬레이터 아이폰 OS 7 & iOS의 제

이것은 고정 된 순서는 단지 I 또는 테스트 케이스에 대해 테스트된다?

+0

왜 heightForRowAtIndexPath의 순서로 릴레이 하시겠습니까? –

답변

0

Apple은 -tableView:heightForRowAtIndexPath:이 호출되는 순서를 지정하지 않습니다.

즉, 특정 주문을 신뢰할 수 없음을 의미합니다. -endUpdates 또는 reload/insert/delete/move 메소드 중 하나를 호출하면 행 높이가 다시 계산됩니다. UITableView은 특수 지식 (현재 보이는 셀과 같은)과 다른 순서로 다시 계산 된 행 높이를 이용할 수 있습니다.

모든 Apple 기기에서 모든 버전의 iOS를 테스트하고 매번 정확히 동일한 주문을 받는다해도 다음 포인트 출시로 변경 될 수 있습니다.

0

AutoLayout을 사용하는 경우. 제약 조건을 올바르게 수정합니다. 그들은 차이를 만들 수 있습니다. iOS *에서는 -tableView:heightForRowAtIndexPath:을 사용할 필요조차 없습니다.

+0

iOS 8이 맞습니까? – Gon

+0

@Gon Yeah. iOS * -> iOS 8 – coreDeviOS