延迟从文件加载UIImages而不阻塞主线程?

Dav*_*Liu 5 lazy-loading uikit uiimage ipad

什么是在不阻塞主线程的情况下按需加载UIImage的好方法?

背景:我可以滚动墙上有几千张图像.显然加载所有UIImages是不可行的,所以现在我只是懒得加载那些显示的,然后在不再需要时释放它们.问题是从文件加载UIImages会花费相当多的时间,只需足够长的时间就可以在滚动时造成卡顿.这些绝不是大图像(大约250x250,可能每个20-30kb),但它们仍然导致口吃.

Bob*_*ork 0

我使用自定义 UIImageView 子类来实现与此类似的功能。它主要用于下载图像(例如 Twitter 流中的头像和图像),因此它使用 NSURLConnection 从 URL 下载图像。完成后,URLConnection 会调用委托方法,然后我用它来更新 UIImageView。我后来添加的一个额外功能是带有缓存图像的静态字典,因此不需要每次都下载经常使用的图像。这对于前面提到的 Twitter 头像之类的东西非常有用。

我不确定您是否正在尝试从网络或本地加载图像,因此这可能并不完全适用于您的情况,但我希望这会有所帮助......