1.將MJRefresh文件夾整個導入所需的工程中。app
2.文件夾中的MJRefresh.bundle--->arrow@2x.png 圖片可自行替換,這個會在刷新過程當中顯示。spa
3.能夠在MJRefreshConst.h和MJRefreshConst.m文件中自定義顯示的文字內容和文字顏色。.net
4.只要你的view可以滾動,就能集成這個控件,好比UIScrollView、UITableView、UICollectionView代理
5.在須要使用的地方,加入以下代碼便可。code
5.1 導入頭文件orm
[cpp] view plaincopyblog
#import "MJRefresh.h" 圖片
[cpp] view plaincopyip
#import "MJRefresh.h" 內存
5.2 聽從協議
[cpp] view plaincopy
@interface ViewController ()<MJRefreshBaseViewDelegate>
[cpp] view plaincopy
@interface ViewController ()<MJRefreshBaseViewDelegate>
5.3 爲你的view添加控件
[cpp] view plaincopy
MJRefreshFooterView *footer = [MJRefreshFooterView footer];
footer.scrollView = myTableView;
footer.delegate = self;
MJRefreshHeaderView *header = [MJRefreshHeaderView header];
header.scrollView = myTableView;
header.delegate = self;
[cpp] view plaincopy
MJRefreshFooterView *footer = [MJRefreshFooterView footer];
footer.scrollView = myTableView;
footer.delegate = self;
MJRefreshHeaderView *header = [MJRefreshHeaderView header];
header.scrollView = myTableView;
header.delegate = self;
5.4實現代理方法
[cpp] view plaincopy
#pragma mark - 刷新控件的代理方法
#pragma mark 開始進入刷新狀態
- (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
{
NSLog(@"%@----開始進入刷新狀態", refreshView.class);
// 2.2秒後刷新表格UI
[self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];
}
#pragma mark 刷新完畢
- (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView
{
NSLog(@"%@----刷新完畢", refreshView.class);
}
#pragma mark 監聽刷新狀態的改變
- (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state
{
switch (state) {
case MJRefreshStateNormal:
NSLog(@"%@----切換到:普通狀態", refreshView.class);
break;
case MJRefreshStatePulling:
NSLog(@"%@----切換到:鬆開便可刷新的狀態", refreshView.class);
break;
case MJRefreshStateRefreshing:
NSLog(@"%@----切換到:正在刷新狀態", refreshView.class);
break;
default:
break;
}
}
#pragma mark 刷新表格而且結束正在刷新狀態
- (void)doneWithView:(MJRefreshBaseView *)refreshView
{
// 刷新表格
[myTableView reloadData];
// (最好在刷新表格後調用)調用endRefreshing能夠結束刷新狀態
[refreshView endRefreshing];
}
[cpp] view plaincopy
#pragma mark - 刷新控件的代理方法
#pragma mark 開始進入刷新狀態
- (void)refreshViewBeginRefreshing:(MJRefreshBaseView *)refreshView
{
NSLog(@"%@----開始進入刷新狀態", refreshView.class);
// 2.2秒後刷新表格UI
[self performSelector:@selector(doneWithView:) withObject:refreshView afterDelay:2.0];
}
#pragma mark 刷新完畢
- (void)refreshViewEndRefreshing:(MJRefreshBaseView *)refreshView
{
NSLog(@"%@----刷新完畢", refreshView.class);
}
#pragma mark 監聽刷新狀態的改變
- (void)refreshView:(MJRefreshBaseView *)refreshView stateChange:(MJRefreshState)state
{
switch (state) {
case MJRefreshStateNormal:
NSLog(@"%@----切換到:普通狀態", refreshView.class);
break;
case MJRefreshStatePulling:
NSLog(@"%@----切換到:鬆開便可刷新的狀態", refreshView.class);
break;
case MJRefreshStateRefreshing:
NSLog(@"%@----切換到:正在刷新狀態", refreshView.class);
break;
default:
break;
}
}
#pragma mark 刷新表格而且結束正在刷新狀態
- (void)doneWithView:(MJRefreshBaseView *)refreshView
{
// 刷新表格
[myTableView reloadData];
// (最好在刷新表格後調用)調用endRefreshing能夠結束刷新狀態
[refreshView endRefreshing];
}
6.你能夠經過調用beginRefreshing自動進入下拉刷新狀態。
7.你能夠經過調用endRefreshing結束刷新狀態。
8.爲了保證內部不泄露,最好在控制器的dealloc中釋放佔用的內存
- (void)dealloc
{
[_header free];
[_footer free];
}
效果圖: