为 UITableView 调用以下方法的顺序是什么?
numberOfSectionsInTableView
numberOfRowsInSection
cellForRowAtIndexPath
heightForRowAtIndexPath
didChangeObject
(NSFetchedResultsController
)
请包括我可能遗漏的任何其他相关钩子(Hook)方法。
最佳答案
我会担心这些方法的调用顺序。这些方法具有非常具体和完整的目的。即使这些方法现在按特定顺序调用,但这并不意味着它们将始终按该顺序调用,因此在您的代码中假设它们的调用顺序是危险的。例如,不会为所有行调用 cellForRowAtIndexPath。仅针对可见行调用它,然后在用户滚动到其他行时调用它们。旧行在离开屏幕时也会被销毁,如果用户向上滚动,它将再次请求单元格。
最重要的是,由于 Apple 的文档中未指定顺序,因此您不能安全地假设它们将始终以相同的顺序被调用,并且在您的实现中做出这样的假设通常不是一个好主意。
关于iphone - UITableView 钩子(Hook)方法的调用顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574085/