如何重新加载UITableView以获取更多数据?

时间:2011-08-13 09:57:01

标签: iphone uitableview

我有UITableView,我从JSON查询中填写。

我用私信填写它并且有效。

JSON查询具有“站点”属性,我可以在每个站点获得20个PM。所以在开始时我得到了Site = 0并得到了20PMS,这些都是加载的。

现在我想拥有电子邮件应用程序中的功能(我相信我在那里看到了它):当你向下滚动并到达终点时(在我的应用程序到达下午20点),应用程序应该加载下一个20等等。

任何想法如何实现?

3 个答案:

答案 0 :(得分:1)

保存最后一行的索引路径并实现

 [UITableView reloadRowsAtIndexPaths:withRowAnimation:]

或者你可以使用scrollToRowAtIndexPath:atScrollPosition:animated:

的scrollPosition

A constant that identifies a relative position in the receiving table view 
(top, middle, bottom) for row when scrolling concludes. 

See “Table View Scroll Position” a descriptions of valid constants in docs

一旦你得到最后一个滚动位置,只需重新加载你的表视图[tableView reloadData]

但是有问题我想一旦你重新加载数据我认为重新加载后(我不确定)tableView它会再次带你到第一行然后你总是可以保存那个tableView的lastIndexpath在reloadData之后只有scrollToRowAtIndexPath:atScrollPosition:animated:或者你可以使用scrollToNearestSelectedRowAtScrollPosition:animated:

答案 1 :(得分:0)

我认为您可以使用自定义逻辑实现电子邮件应用等功能。你要做的是保留tableview的最后一行以加载更多数据。在最后一行应该有“加载更多......”之类的消息。每当用户触摸该行时,您应该加载更多数据并更新tableview。

答案 2 :(得分:0)

Stephen James及其在Key Options Development的同事遇到了类似的问题:http://blog.keyoptions.co/tableview-with-automatic-load-more

他们已经构建了一个示例应用程序(ContinousTableview),应该对您有所帮助。源代码可在GitHub上获得:https://github.com/stephenjames/ContinuousTableview