iOS MJRefresh 下拉刷新和上拉加载更多的使用

MJRefresh 是一个流行的 iOS 下拉刷新和上拉加载更多的库。它简单易用,支持自定义,能够让你轻松为 UIScrollView 及其子类(如 UITableViewUICollectionView)添加下拉刷新和上拉加载功能。以下是 MJRefresh 的详细使用方法:

安装

CocoaPods

使用 CocoaPods 是安装 MJRefresh 的推荐方式。在你的 Podfile 中添加以下行:

pod 'MJRefresh'

然后运行 pod install 命令。

基本使用

导入 MJRefresh

在你需要使用 MJRefresh 的文件中导入框架:

#import <MJRefresh/MJRefresh.h>

如果你在 Swift 项目中使用,确保你的桥接头文件正确配置了导入语句,或直接在 Swift 文件中导入:

import MJRefresh

添加下拉刷新

对于 UITableViewUICollectionView,添加下拉刷新非常简单:

// 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 // 隐藏时间标签
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容