mirror of
https://github.com/wu736139669/Ash_AWord.git
synced 2026-08-05 05:55:19 +00:00
207 lines
8.4 KiB
Markdown
207 lines
8.4 KiB
Markdown
## MJRefresh
|
|
The easiest way to use pull-to-refresh
|
|
|
|
## 支持哪些控件的刷新
|
|
* `UIScrollView`、`UITableView`、`UICollectionView`、`UIWebView`
|
|
|
|
## 如何使用MJRefresh
|
|
* cocoapods导入:`pod 'MJRefresh'`
|
|
* 手动导入:
|
|
* 将`MJRefreshExample/MJRefreshExample/MJRefresh`文件夹中的所有文件拽入项目中
|
|
* 导入主头文件:`#import "MJRefresh.h"`
|
|
```objc
|
|
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
|
|
```
|
|
|
|
## 具体用法
|
|
```objc
|
|
* 由于这个框架的功能较多,就不写具体文字描述其用法
|
|
* 大家可以直接参考示例中的MJTableViewController和MJCollectionViewController,更为直观快速
|
|
```
|
|
|
|
## 下拉刷新01-传统
|
|

|
|
```objc
|
|
// 添加传统的下拉刷新
|
|
[self.tableView addLegendHeaderWithRefreshingBlock:^{
|
|
// 进入刷新状态后会自动调用这个block
|
|
}];
|
|
或
|
|
// 添加传统的下拉刷新
|
|
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)
|
|
[self.tableView addLegendHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
|
|
|
|
// 马上进入刷新状态
|
|
[self.tableView.header beginRefreshing];
|
|
```
|
|
|
|
## 下拉刷新02-动画图片
|
|

|
|
```objc
|
|
// 添加动画图片的下拉刷新
|
|
// 设置回调(一旦进入刷新状态,就调用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];
|
|
```
|
|
|
|
## 下拉刷新03-隐藏时间
|
|

|
|
```objc
|
|
// 隐藏时间
|
|
self.tableView.header.updatedTimeHidden = YES;
|
|
```
|
|
|
|
## 下拉刷新04-隐藏状态和时间01
|
|

|
|
```objc
|
|
// 隐藏时间
|
|
self.tableView.header.updatedTimeHidden = YES;
|
|
// 隐藏状态
|
|
self.tableView.header.stateHidden = YES;
|
|
```
|
|
|
|
## 下拉刷新05-隐藏状态和时间02
|
|

|
|
|
|
## 下拉刷新06-自定义文字
|
|

|
|
```objc
|
|
// 设置文字
|
|
[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];
|
|
```
|
|
|
|
## 上拉刷新01-传统
|
|

|
|
```objc
|
|
// 添加传统的上拉刷新
|
|
[self.tableView addLegendFooterWithRefreshingBlock:^{
|
|
// 进入刷新状态后会自动调用这个block
|
|
}];
|
|
或
|
|
// 添加传统的上拉刷新
|
|
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
|
|
[self.tableView addLegendFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
|
|
```
|
|
|
|
## 上拉刷新02-动画图片
|
|

|
|
```objc
|
|
// 添加动画图片的上拉刷新
|
|
// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)
|
|
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
|
|
|
|
// 设置正在刷新状态的动画图片
|
|
self.tableView.gifFooter.refreshingImages = refreshingImages;
|
|
```
|
|
|
|
## 上拉刷新03-隐藏状态01
|
|

|
|
```objc
|
|
// 隐藏状态
|
|
self.tableView.footer.stateHidden = YES;
|
|
```
|
|
|
|
## 上拉刷新04-隐藏状态02
|
|

|
|
|
|
## 上拉刷新05-全部加载完毕
|
|

|
|
```objc
|
|
// 变为没有更多数据的状态
|
|
[self.tableView.footer noticeNoMoreData];
|
|
```
|
|
|
|
## 上拉刷新06-禁止自动加载
|
|

|
|
```objc
|
|
// 禁止自动加载
|
|
self.tableView.footer.automaticallyRefresh = NO;
|
|
```
|
|
|
|
## 上拉刷新07-自定义文字
|
|

|
|
```objc
|
|
// 设置文字
|
|
[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];
|
|
```
|
|
|
|
## 上拉刷新08-加载后隐藏
|
|

|
|
```objc
|
|
// 隐藏当前的上拉刷新控件
|
|
self.tableView.footer.hidden = YES;
|
|
```
|
|
|
|
## UICollectionView01-上下拉刷新
|
|

|
|
```objc
|
|
// 添加传统的下拉刷新
|
|
[self.collectionView addLegendHeaderWithRefreshingBlock:^{
|
|
// 进入刷新状态后会自动调用这个block
|
|
}];
|
|
// 添加传统的上拉刷新
|
|
[self.collectionView addLegendFooterWithRefreshingBlock:^{
|
|
// 进入刷新状态后会自动调用这个block
|
|
}];
|
|
```
|
|
|
|
## UIWebView01-下拉刷新
|
|

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

|
|
* 步骤02
|
|

|
|
* 步骤03
|
|

|
|
* 步骤04
|
|

|