gpt4 book ai didi

objective-c - 在具有滚动索引的 UITableView 中延迟加载图像

转载 作者:行者123 更新时间:2023-11-28 17:45:20 26 4
gpt4 key购买 nike

我认为这是对一个老问题的新思考,但我完全被困在这里。

在我的应用程序中,我有一个包含 650 个单元格的 UITableView,每个单元格都有一个自定义的 16x16 RGB 图标。在大多数最新的 iOS 设备上,在显示表格之前将所有这些图标加载到内存中完全可以正常工作,但在较旧的硬件上,我想实现一个延迟加载系统,它只加载它需要的图标。

我已经实现了 Apple LazyTableImages例如,(它使用 UIScrollView 委托(delegate)来确定表格何时停止移动以加载可见图标),但我遇到了另一个障碍。

我的 UITableView 还有一个部分索引显示(即右侧的标签列表,您可以上下滑动以快速滚动),而 LazyTableImages 示例没有考虑到这一点。如果我使用索引滚动,图像将不会延迟加载。 :(

据我所知,滚动索引实际上没有触发任何委托(delegate)事件。所以我想知道,有没有其他人尝试在具有滚动索引的表上实现延迟加载?有什么方法可以跟踪索引并查明用户是否与其进行过交互?

谢谢!

最佳答案

在与我的几个 iOS 开发伙伴讨论后,我想出了一个效果很好的解决方案。

我设置它以便除了从 UIScrollView 委托(delegate)加载图标之外,NSTimer 对象将定期调用一个方法,每 .5 秒检查一次当前可见的表格单元格 ([UITableView indexPathsForVisibleRows]),并加载任何屏幕上尚未在单个单独线程中加载的图标。

我试图使解决方案尽可能高效,因此我确保计时器仅在 tableView 可见且静止时处于事件状态,我喜欢它,因为它意味着每个可见的图标都会被处理。

我发现的一件事是,如果在线程循环遍历可见单元格时重新加载 tableView(很少见,但有可能),它会崩溃。解决方案是确保在加载图标时保留每个单元格数据源条目。

关于objective-c - 在具有滚动索引的 UITableView 中延迟加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com