0

我想显示一个很长的列表元素,分为大约 580 个部分。当我打开 UITableViewController 时,需要一两秒(在 iPhone 5 上)来加载控制器。通过检测代码,我了解到我为每个部分的标题执行的字符串操作会延迟表格的显示。如果返回一个常量字符串,它的执行速度会更快。

  • 问题1:为什么UITableView会提前构造所有的section headers,而它却试图通过延迟渲染cell来减少负载?
  • 问题2:我该怎么办?有没有办法告诉 UITableView 不要这样做,或者你会将标题存储在 Core Data 本身中吗?我将日期显示为章节标题,因此将它们存储为字符串可能不明智,因为它们取决于位置、夏令时、语言等。
4

1 回答 1

0

从您的问题(“将标题存储在核心数据中?”)我推测您没有将部分标题存储在核心数据中。大概您在内存等中使用了一些数组,因此无论表视图数据源方法是什么,您都必须计算所有 500 个字符串。

相反,您应该使用完全优化的NSFetchedResultsController. 创建它时给它一个适当的sectionNameKeyPath,你会发现你的表格视图会很快加载。

于 2013-11-15T10:20:12.130 回答