2011-04-06 78 views
7

按以下顺序调用UITableView?UITableView钩子方法调用的顺序是什么?

  • numberOfSectionsInTableView
  • numberOfRowsInSection
  • cellForRowAtIndexPath
  • heightForRowAtIndexPath
  • didChangeObjectNSFetchedResultsController

请包括我可能已经离开了其他相关挂钩的方法。

回答

12

我会担心的是担心这些方法被调用的顺序。这些方法具有非常具体和完整的目的。即使这些方法现在是按某个顺序调用的,但这并不意味着它们将始终按照该顺序调用,因此在代码中对它们调用的顺序进行假设是很危险的。例如,不为所有行调用cellForRowAtIndexPath。它仅被称为可见行,然后在用户滚动到它们时调用其他行。旧行在离开屏幕时也会被销毁,并且如果用户向后滚动,它会再次请求单元格。底线,由于Apple的文档中没有指定订单,所以您不能安全地假定它们将始终以相同的顺序被调用,并且在您的实现中做出这样的假设通常不是一个好主意。