iOS - 处理大图像

时间:2013-10-23 21:44:08

标签: ios image performance uitableview

我有一个iOS应用程序,我正在处理可变大小的图像,这些图像包含在我从网上下载的链接中。图像不需要存储,因此我使用的是EGOImageView,它是一个UIImageView扩展,可以在后台缓存图像,这些图像位于UITableView中。所有这些都适用于低于1000x1000左右像素的图像,但较大的图片是个问题。他们在后台下载很好,但只是设置缓存的图像,因为UIImageViews图像需要花费大量时间才能显示非常大的图像,当有许多大图像时,它会使表格视图滚动变得非常不稳定。

我的问题是我能做些什么来简单地将这些图像加载到UIImageView中对主线程来说不是一个巨大的负担?

1 个答案:

答案 0 :(得分:1)

我最近不得不做一些工作,

我的解决方案很简单。

  1. 下载图像(AFNetworking)并将其存储在文档目录
  2. 调整图像大小(核心图形)以在滚动时创建“缩略图”版本
  3. 当用户按下单元格以查看图像时 - 显示较大的图像。
  4. 您可以使用AFNetworking将图像下载到磁盘,然后使用Core Graphics调整大小。我把它包裹在一个NSOperation中并将它们添加到队列中,因此它没有冻结任何UI。

    你看到一个滞后响应的原因是那些图像被保存在内存中,这对于较小的表来说很好但是它不可扩展。也可能是因为你的提取是在主线程上完成的。

    希望这会让你朝着正确的方向前进。

    https://github.com/AFNetworking/AFNetworking

    CoreGraphics Image resize