【发布时间】:2011-06-09 01:44:46
【问题描述】:
我认为这是对一个老问题的新解释,但我完全被困在这里。
在我的应用程序中,我有一个包含 650 个单元格的 UITableView,每个单元格都有一个自定义的 16x16 RGB 图标。在最新的 iOS 设备上,在显示表格之前将所有这些图标加载到内存中完全可以正常工作,但在较旧的硬件上,我想实现一个延迟加载系统,只加载它需要的图标。
我已经实现了 Apple LazyTableImages 示例(它使用 UIScrollView 委托来确定表格何时停止移动以加载可见图标),但我遇到了另一个障碍。
我的UITableView还有一个section index显示(即右侧的标签列表可以上下滑动快速滚动),而LazyTableImages的例子没有考虑到这一点。 如果我使用索引滚动,图像不会延迟加载。 :(
据我所知,滚动索引实际上并没有触发任何委托事件。 所以我想知道,有没有其他人尝试在带有滚动索引的表上实现延迟加载?有没有办法跟踪索引并找出用户是否与之交互?
谢谢!
【问题讨论】:
-
你不能在表数据源的
tableView:cellForRowAtIndexPath:方法中按需加载图像(或开始异步加载)吗?您可以添加超时,以便仅加载“存活”的单元格的图像,例如至少半秒,因此您最终不会为立即再次消失的单元格加载图像。 -
嗯,这是一个有趣的想法。这与我最终采用的想法有点不同(例如,延迟加载的计时器)。我可能会尝试一下,看看情况如何。谢谢!
标签: objective-c ios uitableview uikit