Hai我是iOS应用程序开发的新手。在我的项目中,我从Web服务获取了4000个响应数据,我需要在tableview上显示它但这里的条件是我必须最初只显示30条记录,一旦用户滚动我需要加载更多记录。
答案 0 :(得分:1)
您可以通过以下两种方式进行管理:
1)手动
这里你需要做的是,你需要两个NSMutableArray
,比如说 responseArray和tblArray 。从该responseArray包含您的Web服务的响应,tblArray将管理UITableView
计数。
通过此,您可以最初显示一组数据,例如, 10,所以int count = 10
,将记录从responseArray添加到tblArray 。当用户向下滚动时,您可以从responseArray获取11-20个数据,并使用
for(int i = 10; i < 20; i++)
{
[tblArray addObject:[responseArray objectAtIndex:i]]
}
[<your TableView Name> reloadData];
count += 10;
2)Handel来自服务器端
使用此选项,您可以轻松处理所有内容。
为此,您只需将当前计数/分页值传递给服务器,服务器将相应地响应您
例如:最初你现在没有任何记录。因此,您可以在Web服务参数中传递0
一旦得到答复,您将有 10条记录作为回复。在UITableView
中显示它们
现在,当用户向下滚动时,您可以在这里管理数组计数
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
在上面的方法中,您可以将计数值增加1,或者可以将其设置为等于数组计数。目前为count += 1
或count += <yourArrayName>.count
之后,您再次将计数值作为您的网络服务参数传递,您将在回复中获得下一条记录。您需要通过[<yourArrayName> arrayByAddingObjectsFromArray:<your resposeArray>];
附加到数组中
使用任何一种方法都可以解决问题。但我个人建议使用第二个选项。
答案 1 :(得分:0)
如果您正在寻找第三方库来实施Load More,您可以试试这个
https://github.com/samvermette/SVPullToRefresh
手动您也可以使用UIScrollViewDelegate
方法scrollViewDidEndDecelerating
来跟踪最后一个可见的单元格,之后您可以在dataSource
中添加更多数据。