UITableViewController의 흐름을 이해하는 데 어려움을 겪고 있습니다. 기본적으로 여기에 내 구조가있다 :heightForRowAtIndexPath는 항상 두 번 호출됩니다.
나는 물론 tableViewController가있다. 그리고 여기에 getCellContentView와 cellForRowAtIndexPath를 사용하여 내 셀과 관련된 모든 작업을 수행합니다. 내 셀에는 각각의 방향에 대해 하나씩 고유 한 프레임이있는 몇 개의 UILabels가 있습니다. 모든 방향 변경 및 프레임 다시 그리기를 감지하고 올바르게 수행합니다. 거기에는 문제가 없습니다. 여태까지는 그런대로 잘됐다.
이제 가로 방향으로 100을 반환하고 세로 방향으로 200을 지정하려면 heightForRowAtIndexPath가 필요합니다. 내 문제는 그 안에 NSLog 때, tableView 회전 할 때 어떤 이유로 든 메서드를 두 번 호출됩니다. 누구나 회전이 두 번 발생하는 이유를 아는 사람이 있습니까? 나는 -reloadData가 문제일지도 모른다고 생각하고 어떻게 든 두 번 회전 할 때 -reloadData를 호출했는지 확인했다. willRotateToInterfaceOrientation 메서드 내에서 -reloadData를 한 번만 호출하고 코드에서 아무 것도 호출하지 않습니다 (첫 번째 viewDidLoad 호출 내 제외).
각 회전 이벤트에서 heightForRowAtIndexPath가 두 번 호출되는 이유는 무엇입니까? 또한 heightForRowAtIndexPath가 회전이 시작될 때 방향을 올바르게 결정할 수없는 것으로 나타납니다. 상태 막대 방향 특성을 사용하여 heightForRowAtIndexPath 내부에서 적절한 셀 높이를 반환하는지 확인합니다. 어떤 도움이 굉장 할 것입니다! 이 원하는 때마다 테이블 뷰를 호출 할 수 충분히 빨리해야하며, 그것은 중요하지 않습니다 : heightForRowAtIndex의
귀하의 구현 : 호출되는 얼마나 많은 시간을 걱정
씨 deanWombourne, 나는 당신을 사랑합니다 (경고, 테스트되지 않은 메모리에서 입력!)! 일했다! 이제 회전 내부에서 테이블이 두 번 렌더링되는 이유를 알아 내기 위해 (두 번의 reloadData 호출이 이루어진 것처럼) 읽습니다. – user511872