简短的问题是:我们是否可以强制tableView:cellForRowAtIndexPath
调用“未显示的单元格”(例如,单元格 8 到 25),以便我们从服务器预获取图像,并且如果表格只有 20 或 25 行,则永远不会重用单元格?
细节:我认为 的机制tableView:cellForRowAtIndexPath
主要是为了保留内存,尤其是在 iPhone 或 iPod Touch 上,这样如果一个表有 1000 行,就不会有 1000 个UITableViewCell
对象(UITableViewCell
是 的子类UIView
),这会使用很多内存,但只有 10 个左右的对象,而且这些对象可以“重用”,因此内存使用可以保持在较小的大小。
但是,如果每一行都在服务器上获取了一张图片呢?与其用单独的线程构建单独的图像缓存,我们可以让我们tableView:cellForRowAtIndexPath
获取前 7 个图像并显示表格,然后强制渲染单元格 8 到 25,并且从不调用dequeueReusableCellWithIdentifier
(所以我们有 25 个这样的UITableViewCell
对象和不要重复使用它们)。如何做到这一点,它实际上是一个实用且简单的解决方案吗?