The easiest way to use pull-to-refresh
pod 'MJRefresh'手动导入:
MJRefreshExample/MJRefreshExample/MJRefresh文件夹中的所有文件拽入项目中导入主头文件:#import "MJRefresh.h"
MJRefresh.bundle
MJRefresh.h
MJRefreshComponent.h MJRefreshComponent.m
MJRefreshConst.h MJRefreshConst.m
MJRefreshFooter.h MJRefreshFooter.m
MJRefreshGifFooter.h MJRefreshGifFooter.m
MJRefreshGifHeader.h MJRefreshGifHeader.m
MJRefreshHeader.h MJRefreshHeader.m
MJRefreshLegendFooter.h MJRefreshLegendFooter.m
MJRefreshLegendHeader.h MJRefreshLegendHeader.m
UIScrollView+MJExtension.h UIScrollView+MJExtension.m
UIScrollView+MJRefresh.h UIScrollView+MJRefresh.m
UIView+MJExtension.h UIView+MJExtension.m
* 由于这个框架的功能较多,就不写具体文字描述其用法
* 大家可以直接参考示例中的MJTableViewController和MJCollectionViewController,更为直观快速
// 添加传统的下拉刷新
[self.tableView addLegendHeaderWithRefreshingBlock:^{
// 进入刷新状态后会自动调用这个block
}];
或
// 添加传统的下拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
[self.tableView addLegendHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 马上进入刷新状态
[self.tableView.header beginRefreshing];
// 添加动画图片的下拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
[self.tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 设置普通状态的动画图片
[self.tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];
// 设置即将刷新状态的动画图片(一松开就会刷新的状态)
[self.tableView.gifHeader setImages:pullingImages forState:MJRefreshHeaderStatePulling];
// 设置正在刷新状态的动画图片
[self.tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStateRefreshing];
// 隐藏时间
self.tableView.header.updatedTimeHidden = YES;
// 隐藏时间
self.tableView.header.updatedTimeHidden = YES;
// 隐藏状态
self.tableView.header.stateHidden = YES;
// 设置文字
[self.tableView.header setTitle:@"Pull down to refresh" forState:MJRefreshHeaderStateIdle];
[self.tableView.header setTitle:@"Release to refresh" forState:MJRefreshHeaderStatePulling];
[self.tableView.header setTitle:@"Loading ..." forState:MJRefreshHeaderStateRefreshing];
// 设置字体
self.tableView.header.font = [UIFont systemFontOfSize:15];
// 设置颜色
self.tableView.header.textColor = [UIColor redColor];
// 添加传统的上拉刷新
[self.tableView addLegendFooterWithRefreshingBlock:^{
// 进入刷新状态后会自动调用这个block
}];
或
// 添加传统的上拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
[self.tableView addLegendFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
// 添加动画图片的上拉刷新
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
// 设置正在刷新状态的动画图片
self.tableView.gifFooter.refreshingImages = refreshingImages;
// 隐藏状态
self.tableView.footer.stateHidden = YES;
// 变为没有更多数据的状态
[self.tableView.footer noticeNoMoreData];
// 禁止自动加载
self.tableView.footer.automaticallyRefresh = NO;
// 设置文字
[self.tableView.footer setTitle:@"Click or drag up to refresh" forState:MJRefreshFooterStateIdle];
[self.tableView.footer setTitle:@"Loading more ..." forState:MJRefreshFooterStateRefreshing];
[self.tableView.footer setTitle:@"No more data" forState:MJRefreshFooterStateNoMoreData];
// 设置字体
self.tableView.footer.font = [UIFont systemFontOfSize:17];
// 设置颜色
self.tableView.footer.textColor = [UIColor blueColor];
// 隐藏当前的上拉刷新控件
self.tableView.footer.hidden = YES;
// 添加传统的下拉刷新
[self.collectionView addLegendHeaderWithRefreshingBlock:^{
// 进入刷新状态后会自动调用这个block
}];
// 添加传统的上拉刷新
[self.collectionView addLegendFooterWithRefreshingBlock:^{
// 进入刷新状态后会自动调用这个block
}];