在UITableView中进行分页的最佳方法

我正在做一个房地产应用程序。 应用程序在用户填写表单(最小房间,价格等)后查询数据源服务器,并获取具有特定键/值对(属性名称,属性地址,经度/纬度,价格等等)的jsonstring。 )。

我想要做的是让用户浏览UITableView中的列表,即使Feed中包含一长串项目,而不必重载用户iPhone(返回的项目计数在查询完成之前是未知的,所以该应用程序需要处理这个)…你会build议我分页?

Thx提前,

斯特凡

如果你的tableView:cellForRowAtIndexPath:方法使用dequeueReusableCellWithIdentifier: (和你不使用tableView:heightForRowAtIndexPath:或者它非常快)写入正确,UITableView应该能够处理数千行而不会超载设备。 你只需要关心你的原始数据的存储。

至于在查询完成之前不知道行数的问题,这很容易解决。 当你从查询中得到更多的行时,只需使用UITableView的insertRowsAtIndexPaths:withRowAnimation:来通知表视图有更多的行可用(并确保你的tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:将反映这些新行)。

如果您还想等到用户滚动到当前列表的末尾,再继续查询,请注意UITableView是UIScrollView的子类,UITableViewDelegate实现了UIScrollViewDelegate。 因此,只需在你的UITableViewDelegate上使用scrollViewDidScroll:知道用户何时滚动,然后检查表视图的contentOffset以确定它们是否向下滚动得足够远,以便加载更多的数据。

什么是人们可以拥有的平均数量? 10,100,1000? 它有图像还是只有数据? 一般来说,我会select没有任何分页 – 只要在向下滚动的时候加载更多的内容,并且在没有太多时间的情况下,在第一次尝试加载所有内容。 您也可以将它们caching在设备上并添加“拉取刷新”function,这样可以改善离线体验。