MJRefresh的使用

MJRefresh框架與UIScrollView、UITableView、UICollectionView、UIWebView完美結合
cocoapods導入:pod ‘MJRefresh’
手動導入:
將MJRefresh文件夾中的所有文件拽入項目中
導入主頭文件:#import “MJRefresh.h”
Base
Custom
MJRefresh.bundle
MJRefresh.h
MJRefreshConst.h
MJRefreshConst.m
UIScrollView+MJExtension.h
UIScrollView+MJExtension.m
UIScrollView+MJRefresh.h
UIScrollView+MJRefresh.m
UIView+MJExtension.h
UIView+MJExtension.m
MJRefresh類結構圖

圖中紅色文字的類:可以直接拿來用
下拉刷新控件的種類
默認(Normal):MJRefreshNormalHeader
動圖(Gif):MJRefreshGifHeader
上拉刷新控件的種類
自動刷新(Auto)
默認(Normal):MJRefreshAutoNormalFooter
動圖(Gif):MJRefreshAutoGifFooter
自動回彈(Back)
默認(Normal):MJRefreshBackNormalFooter
動圖(Gif):MJRefreshBackGifFooter
圖中非紅色文字的類:拿來繼承,用於自定義刷新控件
關於如何自定義刷新控件,可以參考下圖的類

下拉刷新01-默認

self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
   // 進入刷新狀態後會自動調用這個block
}];

// 設置回調(一旦進入刷新狀態,就調用target的action,也就是調用self的loadNewData方法)
self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 馬上進入刷新狀態
[self.tableView.header beginRefreshing];

下拉刷新02-動畫圖片

// 設置回調(一旦進入刷新狀態,就調用target的action,也就是調用self的loadNewData方法)
MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 設置普通狀態的動畫圖片
[header setImages:idleImages forState:MJRefreshStateIdle];
// 設置即將刷新狀態的動畫圖片(一鬆開就會刷新的狀態)
[header setImages:pullingImages forState:MJRefreshStatePulling];
// 設置正在刷新狀態的動畫圖片
[header setImages:refreshingImages forState:MJRefreshStateRefreshing];
// 設置header
self.tableView.header = header;

下拉刷新03-隱藏時間

// 隱藏時間
header.lastUpdatedTimeLabel.hidden = YES;

下拉刷新04-隱藏狀態和時間

// 隱藏時間
header.lastUpdatedTimeLabel.hidden = YES;

// 隱藏狀態
header.stateLabel.hidden = YES;

下拉刷新05-自定義文字

// 設置文字
[header setTitle:@"Pull down to refresh" forState:MJRefreshStateIdle];
[header setTitle:@"Release to refresh" forState:MJRefreshStatePulling];
[header setTitle:@"Loading ..." forState:MJRefreshStateRefreshing];

// 設置字體
header.stateLabel.font = [UIFont systemFontOfSize:15];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:14];

// 設置顏色
header.stateLabel.textColor = [UIColor redColor];
header.lastUpdatedTimeLabel.textColor = [UIColor blueColor];
下拉刷新06-自定義刷新控件

self.tableView.header = [MJDIYHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
// 具體實現參考MJDIYHeader.h和MJDIYHeader.m

上拉刷新01-默認

self.tableView.footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
   // 進入刷新狀態後會自動調用這個block
}];
或
// 設置回調(一旦進入刷新狀態,就調用target的action,也就是調用self的loadMoreData方法)
self.tableView.footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

上拉刷新02-動畫圖片

// 設置回調(一旦進入刷新狀態,就調用target的action,也就是調用self的loadMoreData方法)
MJRefreshAutoGifFooter *footer = [MJRefreshAutoGifFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

// 設置刷新圖片
[footer setImages:refreshingImages forState:MJRefreshStateRefreshing];

// 設置尾部
self.tableView.footer = footer;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章