1.一般使用MJRefresh 来实现上拉刷新和下拉加载功能
2.MJRefresh 下载地址:https://github.com/CoderMJLee/MJRefresh
3. MJRefresh 的使用
(1)先在工程中导入:
#import "MJRefreshNormalHeader.h"
#import "MJRefreshAutoNormalFooter.h"
(2)下拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法) MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(getServiceData)]; // 设置自动切换透明度(在导航栏下面自动隐藏) header.automaticallyChangeAlpha = YES; // 隐藏时间 header.lastUpdatedTimeLabel.hidden = YES; // 设置header self.mainTableView.mj_header = header;
注意:下拉刷新时候,要把pageIndex置为1
- (void)getServiceData { self.pageIndex = 1; [self requestDataList]; }
(3)上拉加载
self.mainTableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
[self requestDataList];
}];
注意:1.数据数组 的设置
2.第几页 的设置
3.成功后结束刷新
4.刷新tableview
if (self.pageIndex==1) { self.dataArray = commodities.mutableCopy; }else { [self.dataArray addObjectsFromArray:commodities]; } self.pageIndex ++; [self.mainTableView reloadData]; [self.mainTableView.mj_header endRefreshing]; [self.mainTableView.mj_footer endRefreshing];