在 tableView 中加载 iPhone 磁盘图像(像照片应用程序)

Posted

技术标签:

【中文标题】在 tableView 中加载 iPhone 磁盘图像(像照片应用程序)【英文标题】:iPhone disk image loading in tableView (Photo application like) 【发布时间】:2010-03-18 18:52:33 【问题描述】:

我有一个关于最佳性能方法的问题......

    基本上我有一个 UITableView,里面有单元格和 4 个图像。 (类似照片应用程序的缩略图预览);看到了 24 张图片...

    单元格中的图像从 URL 地址异步加载,下载后保存在 iPhone 上的 Documents 目录中。

我希望在滚动缩略图时获得与 PHOTO 应用程序相同的性能,但我的桌面移动有点不稳定...

您推荐的最佳方法是使用已加载的图像从磁盘呈现并保持表格滚动流畅......

你的想法:

    制作将从磁盘加载拇指的 NSOperation(4 个并发操作);每张图片 1 次操作...

    制作将加载 4,8,16 的 NSOperation ?图像循环存储到内存中;

    其他更好的方法?

谢谢

【问题讨论】:

【参考方案1】:

在您为此投入太多时间之前,您应该查看 Three20 iPhone 框架。它提供了一个非常接近地复制 Photo 的图像选择器的视图控制器:

http://three20.info/overview

如果您决定不使用 Three20,您至少应该确保您的解决方案异步加载和卸载图像;这样,无论磁盘读取需要多长时间,您的表界面都不会断断续续。如果您使用 UIImageViews 并使用+[UIImage imageWithContentsOfFile:] 获取 UIImages,那么 UIKit 将为您处理其余的事情。

您还应该考虑将单独的缩略图图像与全尺寸图像一起存储以用于此视图。这将为您节省阅读时间和内存,而这正是 Photo 应用程序所做的。

如果您执行上述一项或多项操作,我怀疑磁盘读取将成为您的瓶颈!

【讨论】:

以上是关于在 tableView 中加载 iPhone 磁盘图像(像照片应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

在tableview中加载异步图像,它们在每次滚动时消失

在 iPhone 项目中加载数据文件

在 iPhone 应用程序中加载文本数据

iPhone:等待 webview 在自动化测试中加载

iphone - 在视图控制器中加载表格视图时出现问题

在 iphone SQLite (FMDB) 中加载 10k+ 行