MJRefresh 下拉刷新
?pod 'MJRefresh', '~> 3.1.15.1'
#import <MJRefresh/MJRefresh.h>
MJRefresh 使用了UIScrollView Category
結(jié)構(gòu)看圖

一、下拉刷新
默認(rèn)使用MJRefreshNormalHeader 初始化方法:
1、
+ (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock;
+ (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
MJRefreshNormalHeader *head = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(SEL)];
MJRefreshNormalHeader *head = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
????[self.tableView reload];
????[self.tableView.mj_header endRefreshing];//結(jié)束刷新動(dòng)畫
});
}];
選擇中文語(yǔ)言。默認(rèn)帶箭頭,描述文字,最后刷新時(shí)間。
也可以根據(jù)狀態(tài)自定義,狀態(tài)枚舉
/** 設(shè)置state狀態(tài)下的文字 */
- (void)setTitle:(NSString *)title forState:(MJRefreshState)state;
/** 刷新控件的狀態(tài) */
typedef NS_ENUM(NSInteger, MJRefreshState) {
/** 普通閑置狀態(tài) */
MJRefreshStateIdle = 1,
/** 松開(kāi)就可以進(jìn)行刷新的狀態(tài) */
MJRefreshStatePulling,
/** 正在刷新中的狀態(tài) */
MJRefreshStateRefreshing,
/** 即將刷新的狀態(tài) */
MJRefreshStateWillRefresh,
/** 所有數(shù)據(jù)加載完畢,沒(méi)有更多的數(shù)據(jù)了 */
MJRefreshStateNoMoreData
};
eg:
[header setTitle:@"松開(kāi)刷新數(shù)據(jù)" forState:MJRefreshStatePulling];
最后設(shè)置需要下拉刷新的控件,
self.tableView.mj_header = header.
2、添加吃包子GIF動(dòng)畫
MJRefreshGifHeader *gifHeader = [MJRefreshGifHeader?headerWithRefreshingTarget:self refreshingAction:@selector(mjRefreshHeader)];
設(shè)置不同狀態(tài)的imageArray
- (void)setImages:(NSArray *)images forState:(MJRefreshState)state;
NSArray *idleImageAry = [self IdleImageArray];
NSArray *refreshImageAry = [self PullRefreshingImageAry];
[gifHeader setImages:idleImageAry forState:MJRefreshStateIdle];
[gifHeader setImages:refreshImageAry forState:MJRefreshStatePulling];
[gifHeader setImages:refreshImageAry forState:MJRefreshStateRefreshing];
self.tableView.mj_header =?gifHeader;
圖片資源
/** 設(shè)置普通狀態(tài)的動(dòng)畫圖片 */
- (NSArray *)IdleImageArray{
NSMutableArray *idleImages = [NSMutableArray array];
for (NSUInteger i = 1; i<=60; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];
[idleImages addObject:image];
}
return idleImages;
}
/** 設(shè)置即將刷新?tīng)顟B(tài)的動(dòng)畫圖片(一松開(kāi)就會(huì)刷新的狀態(tài))? 設(shè)置正在刷新?tīng)顟B(tài)的動(dòng)畫圖片 */
- (NSArray *)PullRefreshingImageAry
{
NSMutableArray *refreshingImages = [NSMutableArray array];
for (NSUInteger i = 1; i<=3; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];
[refreshingImages addObject:image];
}
return refreshingImages;
}