代码的下载地址:http://download.csdn.net/detail/weasleyqi/4913678
在iOS的app中,很多时候会遇到需要上拉加载更多或者下拉刷新页面的情况,我们通过API从服务器取得数据的时候,因为数据很多,我们需要定义一个index和length来控制我们和服务器通讯一次所取得的数据。
不需要在xib文件中放置一个tableview了,这个时候是调用自己定义的pullingRefreshTableview,否则会出现双层数据的样子。
一次通讯结束,我们把取道的数据放到一个list里面,然后通过tableview来显示出来,当用户上拉加载更多的时候,我们只需要将新取道的数据拼接到之前的list里面,然后显示在tableview上即可。
在窗口中的reloaddata函数中,我们定义page来判断数据是否已经全部取完,在这个函数里面去跟服务器通讯等等。
- (void)loadData{
self.page++;
if (self.refreshing) {
self.page = 1;
self.refreshing = NO;
[self.list removeAllObjects];
}
for (int i = 0; i < 10; i++) {
[self.list addObject:@"ROW"];
}
if (self.page >= 3) {
[self.tableView tableViewDidFinishedLoadingWithMessage:@"All loaded!"];
self.tableView.reachedTheEnd = YES;
} else {
[self.tableView tableViewDidFinishedLoading];
self.tableView.reachedTheEnd = NO;
[self.tableView reloadData];
}
}
在这个函数里面来跟服务器通讯,来判断是否取完所有的数据,当取完所有的数据的时候,我们就定义tableview.reachTheEnd = YES,否则就是调用reloadData函数。
代码的下载地址:http://download.csdn.net/detail/weasleyqi/4913678。