使用 SQLite 中的数据在 UIScrollView 中延迟加载
Posted
技术标签:
【中文标题】使用 SQLite 中的数据在 UIScrollView 中延迟加载【英文标题】:Lazy Loading in UIScrollView with Data from SQLite 【发布时间】:2012-01-12 21:42:38 【问题描述】:在我的 iPad 应用程序中,我制作了一个分段控件,其中一个分段 - 当单击时 - 显示一个长列表(大约 300 个),其中包含来自本地 SQLite 数据库的图像和标签。这需要花费大量时间来加载,并在从数据库加载所有应用程序活动时暂停应用程序活动。
虽然我暂时应用了一个活动指示器,但是看起来很粗制滥造。谁能告诉我如何以 单击按钮打开该视图时的方式应用延迟加载,而不是一次加载所有内容,它只获取最初显示在内容上的内容(大约 9 张带有标签的图像)。
提前致谢。
【问题讨论】:
我太快了。从索引current
limit 10(或20)开始执行sqlite查询,然后从那里前进。
【参考方案1】:
你应该在列表上实现分页。加载前 25 个项目,然后在 tableFooterView 上添加按钮(“Next 25”),这将加载另一个 25。
【讨论】:
【参考方案2】:如果您使用UITableView,您可能会有更好的机会。
UITableViewCell
一次加载一个单元格(为您提供它尝试加载的项目的索引),因此如果您使用表格视图,它只会加载需要显示的项目数量。你告诉它有多少物品,它们有多高,等等。
它还重用单元格,因此它提供的性能比一次在内存中创建 300 个不同的视图要好得多。
UIScrollView 不知道您的“项目”,因此它允许您将任意数量的项目推送到视图中,然后添加滚动条。这里没有针对内存使用或数据库访问进行优化。
【讨论】:
以上是关于使用 SQLite 中的数据在 UIScrollView 中延迟加载的主要内容,如果未能解决你的问题,请参考以下文章