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

Posted

技术标签:

【中文标题】使用 SQLite 中的数据在 UIScrollView 中延迟加载【英文标题】:Lazy Loading in UIScrollView with Data from SQLite 【发布时间】:2012-01-12 21:42:38 【问题描述】:

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

虽然我暂时应用了一个活动指示器,但是看起来很粗制滥造。谁能告诉我如何以 单击按钮打开该视图时的方式应用延迟加载,而不是一次加载所有内容,它只获取最初显示在内容上的内容(大约 9 张带有标签的图像)。

提前致谢。

【问题讨论】:

我太快了。从索引currentlimit 10(或20)开始执行sqlite查询,然后从那里前进。 【参考方案1】:

你应该在列表上实现分页。加载前 25 个项目,然后在 tableFooterView 上添加按钮(“Next 25”),这将加载另一个 25。

【讨论】:

【参考方案2】:

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

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

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

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

【讨论】:

以上是关于使用 SQLite 中的数据在 UIScrollView 中延迟加载的主要内容,如果未能解决你的问题,请参考以下文章

Sqlite 使用

SQLite数据库及在Android开发中的基本使用

SQLite 3 中的数据类型

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

详解Android中的SQLite数据库存储

将存储在 sqlite 中的用户数据迁移到应用升级中的核心数据