2011-04-06 8 views
7

UITableView에 대해 다음과 같은 메소드가 어떤 순서로 호출됩니까? UITableView 훅 메쏘드는 어떤 순서로 호출됩니까?

  • heightForRowAtIndexPath
  • didChangeObject (NSFetchedResultsController) numberOfRowsInSection
  • cellForRowAtIndexPathnumberOfSectionsInTableView

    내가 탈락했을 수있는 기타 관련 후크 방법을 포함하십시오.

  • 답변

    12

    이러한 메서드가 호출되는 순서에 신경을 쓰면 조심해야합니다. 이러한 방법은 매우 구체적이고 완전한 목적을 가지고 있습니다. 메서드가 특정 순서로 호출 되더라도 항상 순서대로 호출된다는 의미는 아니므로 호출 순서에 따라 코드에서 가정을하는 것이 위험합니다. 예를 들어 cellForRowAtIndexPath는 모든 행에 대해 호출되지 않습니다. 표시되는 행만 호출 된 다음 사용자가 스크롤하여 추가 행을 호출합니다. 오래된 행은 화면에서 사라짐에 따라 파괴되며 사용자가 다시 스크롤하면 셀을 다시 요청합니다.

    결론은 애플의 문서에서 순서가 지정되지 않았기 때문에 항상 같은 순서로 호출된다는 가정하에 수행 할 수는 없으며 구현시 그러한 가정을하는 것이 일반적으로 바람직하지 않습니다.

    관련 문제