The easiest way to use pull-to-refresh
用法最简单的下拉刷新框架:一行代码搞定
UIScrollView
、UITableView
、UICollectionView
、UIWebView
cocoapods导入: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
}];
// 添加下拉刷新控件
[self .webView.scrollView addLegendHeaderWithRefreshingBlock: ^{
// 进入刷新状态后会自动调用这个block
}];
本框架纯ARC,兼容的系统>=iOS6.0、iPhone\iPad横竖屏
如果在使用过程中遇到BUG,希望你能Issues我,谢谢(或者尝试下载最新的框架代码看看BUG修复没有)
如果在使用过程中发现功能不够用,希望你能Issues我,我非常想为这个框架增加更多好用的功能,谢谢
如果你想为MJRefresh输出代码,请拼命Pull Requests我
一起携手打造天朝乃至世界最好用的刷新框架,做天朝程序员的骄傲
如果你开发的应用中用到了MJRefresh,希望你能到CocoaControls 添加你应用的iTunes路径,我将会安装使用你的应用,并且根据众多应用的使用情况,对MJRefresh进行一个更好的设计和完善,提供更多好用的功能,谢谢
步骤01(微信是举个例子,百度“你的应用名称 itunes”)
步骤02
步骤03
步骤04