MJRefresh
是一个流行的 iOS 下拉刷新和上拉加载更多的库。它简单易用,支持自定义,能够让你轻松为 UIScrollView
及其子类(如 UITableView
和 UICollectionView
)添加下拉刷新和上拉加载功能。以下是 MJRefresh
的详细使用方法:
安装
CocoaPods
使用 CocoaPods 是安装 MJRefresh
的推荐方式。在你的 Podfile
中添加以下行:
pod 'MJRefresh'
然后运行 pod install
命令。
基本使用
导入 MJRefresh
在你需要使用 MJRefresh
的文件中导入框架:
#import <MJRefresh/MJRefresh.h>
如果你在 Swift 项目中使用,确保你的桥接头文件正确配置了导入语句,或直接在 Swift 文件中导入:
import MJRefresh
添加下拉刷新
对于 UITableView
或 UICollectionView
,添加下拉刷新非常简单:
// Objective-C
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// Swift
tableView.mj_header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNewData))
其中,loadNewData
是当触发下拉刷新时,你希望执行的方法。
添加上拉加载更多
同样,添加上拉加载也很直观:
// Objective-C
self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
// Swift
tableView.mj_footer = MJRefreshAutoNormalFooter(refreshingTarget: self, refreshingAction: #selector(loadMoreData))
loadMoreData
是当触发上拉加载时,你希望执行的方法。
结束刷新
记得在加载数据的方法中,加载数据完成后结束刷新状态:
// Objective-C
// 结束下拉刷新
[self.tableView.mj_header endRefreshing];
// 结束上拉加载更多
[self.tableView.mj_footer endRefreshing];
// Swift
// 结束下拉刷新
tableView.mj_header?.endRefreshing()
// 结束上拉加载更多
tableView.mj_footer?.endRefreshing()
高级用法
自定义刷新控件
MJRefresh
支持高度自定义,包括文本、颜色、图标等。例如,自定义下拉刷新控件:
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
header.lastUpdatedTimeLabel.hidden = YES; // 隐藏时间标签
header.stateLabel.hidden = YES; // 隐藏状态标签
self.tableView.mj_header = header;
在 Swift 中:
let header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNewData))
header.lastUpdatedTimeLabel.isHidden = true // 隐藏时间标签
网友评论