加载数据基本方法:
[self loadDataWithPage:1 showIndicator:YES finished:^{} ];
在该方法中流程:
- 隐藏之前可能存在的failedView
- 显示加载中indicator,(根据showIndicator判断是否显示)
- 更新当前页码self.pageIndex = page
- block回调:
判断返回的 status的值,如果为成功:
a) 判断返回结果是否为空(或空指针)
b) 判断是否这次加载到的数据已小于页面容量(更新self.isLoadAll)
c) 如果page 为 1,则清除原来self.dataArray中的数据,且[self.tableView.footer resetNoMoreData]
d) self.dataArray添加刚刚请求回来的数据。
e) [self.tableView reloadData]返回值status如果为没有数据:
a) strongSelf.isLoadAll = YES;
b) 如果是page = 1,则清空dataArray和tableView,并显示没有数据的FailedView
- 返回值status如果为请求失败:
a) 清空dataArray 和 tableView,并显示请求失败的FailedView
调用列表加载方法:
页面启动时:(以及自动刷新时)
[self loadData:1 showIndicator:YES finished:^{} ];
下拉刷新:
[self loadData:1 showIndicator:NO finished:^{
[weakSelf.tableView.header endRefreshing];
}];
上拉加载更多:
if(!self.isLoadAll){
self.pageIndex++;
__weak typeof(self) weakSelf = self;
[self loadData:self.pageIndex showIndicator:NO finished:^{
[weakSelf.tableView.footer endRefreshing];
}];
}else{
[self.tableView.footer noticeNoMoreData];
}