MJRefresh 是一個(gè)流行的 iOS 下拉刷新和上拉加載更多的庫。它簡(jiǎn)單易用,支持自定義,能夠讓你輕松為 UIScrollView 及其子類(如 UITableView 和 UICollectionView)添加下拉刷新和上拉加載功能。以下是 MJRefresh 的詳細(xì)使用方法:
安裝
CocoaPods
使用 CocoaPods 是安裝 MJRefresh 的推薦方式。在你的 Podfile 中添加以下行:
pod 'MJRefresh'
然后運(yùn)行 pod install 命令。
基本使用
導(dǎo)入 MJRefresh
在你需要使用 MJRefresh 的文件中導(dǎo)入框架:
#import <MJRefresh/MJRefresh.h>
如果你在 Swift 項(xiàng)目中使用,確保你的橋接頭文件正確配置了導(dǎo)入語句,或直接在 Swift 文件中導(dǎo)入:
import MJRefresh
添加下拉刷新
對(duì)于 UITableView 或 UICollectionView,添加下拉刷新非常簡(jiǎn)單:
// Objective-C
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// Swift
tableView.mj_header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNewData))
其中,loadNewData 是當(dāng)觸發(fā)下拉刷新時(shí),你希望執(zhí)行的方法。
添加上拉加載更多
同樣,添加上拉加載也很直觀:
// Objective-C
self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
// Swift
tableView.mj_footer = MJRefreshAutoNormalFooter(refreshingTarget: self, refreshingAction: #selector(loadMoreData))
loadMoreData 是當(dāng)觸發(fā)上拉加載時(shí),你希望執(zhí)行的方法。
結(jié)束刷新
記得在加載數(shù)據(jù)的方法中,加載數(shù)據(jù)完成后結(jié)束刷新狀態(tài):
// Objective-C
// 結(jié)束下拉刷新
[self.tableView.mj_header endRefreshing];
// 結(jié)束上拉加載更多
[self.tableView.mj_footer endRefreshing];
// Swift
// 結(jié)束下拉刷新
tableView.mj_header?.endRefreshing()
// 結(jié)束上拉加載更多
tableView.mj_footer?.endRefreshing()
高級(jí)用法
自定義刷新控件
MJRefresh 支持高度自定義,包括文本、顏色、圖標(biāo)等。例如,自定義下拉刷新控件:
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
header.lastUpdatedTimeLabel.hidden = YES; // 隱藏時(shí)間標(biāo)簽
header.stateLabel.hidden = YES; // 隱藏狀態(tài)標(biāo)簽
self.tableView.mj_header = header;
在 Swift 中:
let header = MJRefreshNormalHeader(refreshingTarget: self, refreshingAction: #selector(loadNewData))
header.lastUpdatedTimeLabel.isHidden = true // 隱藏時(shí)間標(biāo)簽