iphone - UITableView 钩子(Hook)方法的调用顺序是什么?

标签 iphone cocoa-touch ios uitableview

为 UITableView 调用以下方法的顺序是什么?

  • numberOfSectionsInTableView
  • numberOfRowsInSection
  • cellForRowAtIndexPath
  • heightForRowAtIndexPath
  • didChangeObject (NSFetchedResultsController)

请包括我可能遗漏的任何其他相关钩子(Hook)方法。

最佳答案

我会担心这些方法的调用顺序。这些方法具有非常具体和完整的目的。即使这些方法现在按特定顺序调用,但这并不意味着它们将始终按该顺序调用,因此在您的代码中假设它们的调用顺序是危险的。例如,不会为所有行调用 cellForRowAtIndexPath。仅针对可见行调用它,然后在用户滚动到其他行时调用它们。旧行在离开屏幕时也会被销毁,如果用户向上滚动,它将再次请求单元格。

最重要的是,由于 Apple 的文档中未指定顺序,因此您不能安全地假设它们将始终以相同的顺序被调用,并且在您的实现中做出这样的假设通常不是一个好主意。

关于iphone - UITableView 钩子(Hook)方法的调用顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5574085/

相关文章:

ios - OpenGLES 上的定向绘图

ios - Xcode约束问题

iphone - 将标签的文本用于变量,以便稍后在 iOS5 中使用

iphone - 键盘出现后 UISCcrollView 的 contentSize 发生变化

iOS Navigationbar 在动画期间改变颜色

javascript - 在不使用 jQuery 的情况下获取移动设备(尤其是 iPhone)上的窗口高度

iphone - 使用 map 缓存模态视图

iphone - 是什么原因(以及如何解决)这个奇怪的核心位置错误?

iphone - 以编程方式添加 UIButton 时出现 UITableView 错误

iphone - Facebook SDK 3.2 的最低 iOS 部署目标?