【问题标题】:iPhone tableview paginationiPhone 表格视图分页
【发布时间】:2011-10-05 14:23:32
【问题描述】:

首先,当我说我确实首先搜索了这个答案时,请相信我......很多。我发现了很多例子,但没有一个与我需要的相似。虽然我可能一直在使用错误的关键词进行搜索,但我不相信。

这是我的问题:

我有一个由返回大量数据的查询填充的表视图。该数据用于餐厅列表、价格等级和 ID。但是数据库中有太多的餐馆,以至于它会填满内存并在大多数情况下使应用程序崩溃。 (我假设这是正在发生的事情,因为如果查询受到限制,代码工作得很好,并且一直在我查询没有返回那么多数据的其他页面上工作。)

我想做的是为这个页面的应用程序的表格视图进行分页。我看不出如何使用“显示更多”方法,或者滚动到底部时的自动加载,仅仅是因为如果你向下滚动到列表的末尾,你仍然会遇到同样的问题:填充内存。有没有办法进行类似网络的分页,其中(如果它们不在第一页上)顶部有一个“上一个”单元格,而(如果不在最后一页上)底部有一个“下一个”单元格?这些必须清除当前视图中的单元格并删除数据,这样我们就不仅仅是添加会导致相同问题的数据,然后执行新查询来填充单元格。

当然,我不希望有人坐在这里为我编写所有代码。我需要的主要部分是如何为下一个和上一个单元格设置单元格。之后我应该能够弄清楚其余部分,但我不知道如何从当前表视图中清除数据。

感谢您的任何帮助或建议。

【问题讨论】:

    标签: iphone memory-management pagination tableview


    【解决方案1】:

    我认为您可以使用显示更多方法或在滚动时加载,您说问题是您仍然加载一堆所有数据并且内存不足,但您可以避免这种情况......一个选项是,保存到磁盘或仅释放未显示在表格视图上的数据,您可以使用 UITableView 的 indexPathsForVisibleRows 方法查看哪些单元格可见,并且通过该信息您应该知道可以安全释放哪些数据......您可以当您收到内存警告时执行此操作,或者当单元格从屏幕上滚出时执行此操作(取决于您)...

    希望对你有帮助

    丹尼尔

    【讨论】:

    • 感谢您的评论。我会研究这个方法,看看它是如何工作的。
    • 单元格会自动清除并重复使用,因此您无需担心。相反,您应该关心如何存储获取的数据,并在将值放入单元格后释放它。您可以使用 UIScrollView 委托方法(UITableView 是 UIScrollView 的子类)来确定何时需要重新加载下一个和上一个数据。
    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多