【发布时间】:2014-02-25 13:52:28
【问题描述】:
Tweetbot、Twitterrific、Alien Blue 等许多显示来自 API 的图像的应用程序似乎以异步方式加载它们。似乎初始可见图像是同步加载的——也就是说,在它们的图像准备好之前不会显示初始可见单元格——但是当进一步向下滚动超过初始可见单元格时,似乎这些新单元格的图像是独立于初始同步加载。
例如,当用户在 Twitter 应用程序中加载推文时,最初可见的六七条推文在加载用户头像的图像之前不会显示,但之后的 40 多条推文 (直到用户滚动才可见),我们不必等待这些图像已加载以显示初始单元格,因为它们甚至还不可见。似乎大多数应用程序都允许这些图像独立加载,从而可以更快地显示初始推文。
我很困惑如何最好地完成此任务,例如,如果大多数开发人员执行此操作的标准方式我不知道。
我习惯于通过从响应中向 Core Data 提供对象来使用 Core Data,然后NSFetchedResultsController 在表格视图中显示它们。但是,这具有负面影响,即要求所有内容都已完全加载并存储在对象中,然后才能显示单元格。这意味着如果 API 返回一个图片链接给我并且我想在单元格中显示该图片,我必须将链接加载到 UIImage 并将其添加到 Core Data。
所以我的问题基本上归结为: Tweetbot、Twitterrific、Alien Blue 等流行应用程序如何处理需要加载大量图像和数据的表格视图,但仍然允许非常快速的加载,无需加载不必要的数据,并且仍然保持高滚动性能?
【问题讨论】:
-
@user716216 这不能回答我的问题。我需要知道如何将它与 Core Data 等持久存储结合使用,如何仅处理初始可查看单元格的加载等。这个问题需要的不仅仅是一个链接。
-
这就是为什么我将其发布为评论,而不是答案。
-
好的,谢谢。我知道 AFNetworking 对于 UIImageView 也有类似的类别,我只是不确定它是否正是我正在寻找的。span>
标签: ios objective-c uitableview core-data grand-central-dispatch