我正在编写一个调用 Web 服务的 iPhone 应用程序。假设 Web 服务在 json 对象中返回 1000 个元素。我不想加载所有 1000 个,因为解析可能需要一些时间。我想做的是加载我从 json 对象创建的 NSDictionary 的前 15 个元素,然后当用户滚动到 tableview 的底部时,第 16 行显示“加载更多......”。由于我已经将所有数据存储在 NSDictionary 对象中,因此有办法将其分解,使其返回 15,然后用户单击“加载更多……”并加载下一个 15 并继续直到那里NSDictionary 中没有更多元素了吗?我可以展示我的代码示例,但我想知道是否有人有如何完成此操作的示例。提前感谢您的任何帮助。
问问题
537 次
2 回答
1
我认为 UITableView 可以为您做到这一点。只构建了可见的单元格。然后,当您向下滚动时,它们的内存将与下一行交换。我认为重新发明轮子没有意义。
另请注意,只有可见的单元格在您输入时被“解析”。它不会在加载时为数据源中的每个项目构建一个单元格。
于 2012-10-10T17:59:08.297 回答
0
假设我没听错,我会说你只需要一些棘手的逻辑来让它工作
我会简单地维护一个索引偏移量,我将乘以您想要随时显示的行数(在您的情况下为 15)
您的逻辑是始终返回您希望允许 + 1 用于最终结果的行数。例如:返回_indexOffset * 15 + 1;//为你的 numberOfRowsForSection
在你的 didSelectIndexPathOf 你检查你是否是最后一行:
if(indexPath.row == _indexOffset * 15)
{
_indexOffset ++;
[tableView reloadData];
}
这不是一个确切的答案,但我认为它可以让你开始
于 2012-10-10T17:54:30.937 回答