1、概述
MJRefresh是iOS开发中最常用的开源框架之一,主要用于UITanleView的下拉、上拉刷新。本框架兼容iOS6\iOS7,iPhone\iPad横竖屏,目前大多数商业app中都用到了这个框架。
框架地址:https://github.com/CoderMJLee/MJRefresh
2、使用方法
(1)下载框架,导入头文件
1
|
#import "MJRefresh.h" |
(2)添加头部控件的方法
1
|
[self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)]; |
或者
1
|
[self.tableView addHeaderWithCallback:^{ }]; |
(3)添加尾部控件的方法
1
|
[self.tableView addFooterWithTarget:self action:@selector(footerRereshing)]; |
或者
1
|
[self.tableView addFooterWithCallback:^{ }]; |
(4)可以在MJRefreshConst.h和MJRefreshConst.m文件中自定义显示的文字内容和文字颜色
(5)添加下拉刷新
1
2
3
|
MJRefreshHeaderView *header = [MJRefreshHeaderView header]; header.scrollView = self.tableView; header.delegate = self; |
(6)添加上拉加载更多
1
2
3
|
MJRefreshFooterView *footer = [MJRefreshFooterView footer]; footer.scrollView = self.tableView; footer.delegate = self; |
(7)监听刷新状态
方法一,设置代理delegate,一旦控件进入刷新状态,就会调用下面代理方法:
1
2
3
4
5
6
7
8
|
- ( void )refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
{ if ([refreshView isKindOfClass:[MJRefreshFooterView class ]]) {
// 上拉加载更多
} else {
// 下拉刷新
}
} |
方法二,设置block回调:
1
2
3
|
header.beginRefreshingBlock = ^(MJRefreshBaseView *refreshView) { }; |
1
2
3
|
footer.beginRefreshingBlock = ^(MJRefreshBaseView *refreshView) { }; |
(8)进入刷新状态
1
2
|
[self.tableView headerBeginRefreshing]; [self.tableView footerBeginRefreshing]; |
(9)结束刷新
1
2
|
[self.tableView headerEndRefreshing]; [self.tableView footerEndRefreshing]; |
(10)如果需要,可以在MJRefreshBaseView.h中通过控制NeedAudio宏开启音频功能。