使用SQLite中的数据在UIScrollView中进行延迟加载

时间:2012-01-12 21:42:39

标签: iphone ios ipad uiscrollview lazy-loading

在我的iPad应用程序中,我制作了一个分段控件,其中一段 - 当点击时 - 显示一个长列表(大约300个),其中包含来自本地SQLite数据库的图像和标签。这需要花费大量时间来加载并将应用程序活动暂停,同时从数据库加载所有应用程序活动。

虽然我暂时申请了一项活动指标,但这看起来非常粗制滥造。任何人都可以告诉我如何以的方式应用延迟加载当单击按钮打开该视图时,而不是一次加载所有内容,它只获取最初在内容上显示的内容(约有9张带标签的图片)。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您应该在列表上实现分页。首先加载25项,然后在tableFooterView上添加按钮(“Next 25”),这将加载另外25个。

答案 1 :(得分:0)

如果你使用UITableView,你可能会有更好的机会。

UITableViewCell一次加载一个单元格(为您提供正在尝试加载的项目的索引),因此如果您使用表格视图,它只会加载所需的项目数量显示。你告诉它有多少物品,它们有多高等等。

它还重用了单元格,因此它比一次在内存中创建300个不同的视图提供了更好的性能。

UIScrollView不知道您的“项目”,因此它允许您将任意数量的项目推送到视图中,然后添加滚动条。这里没有针对内存使用或数据库访问的优化。