MJRefresh 下拉刷新

2017-12-25  本文已影响0人  淡淡的邪恶

MJRefresh 下拉刷新

 pod 'MJRefresh', '~> 3.1.15.1'

#import <MJRefresh/MJRefresh.h>

MJRefresh 使用了UIScrollView Category

结构看图

结构图

一、下拉刷新

默认使用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];//结束刷新动画

});

}];

选择中文语言。默认带箭头,描述文字,最后刷新时间。

也可以根据状态自定义,状态枚举

/** 设置state状态下的文字 */

- (void)setTitle:(NSString *)title forState:(MJRefreshState)state;

/** 刷新控件的状态 */

typedef NS_ENUM(NSInteger, MJRefreshState) {

/** 普通闲置状态 */

MJRefreshStateIdle = 1,

/** 松开就可以进行刷新的状态 */

MJRefreshStatePulling,

/** 正在刷新中的状态 */

MJRefreshStateRefreshing,

/** 即将刷新的状态 */

MJRefreshStateWillRefresh,

/** 所有数据加载完毕,没有更多的数据了 */

MJRefreshStateNoMoreData

};

eg:

[header setTitle:@"松开刷新数据" forState:MJRefreshStatePulling];

最后设置需要下拉刷新的控件,

self.tableView.mj_header = header.

2、添加吃包子GIF动画

MJRefreshGifHeader *gifHeader = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(mjRefreshHeader)];

设置不同状态的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;

图片资源

/** 设置普通状态的动画图片 */

- (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;

}

/** 设置即将刷新状态的动画图片(一松开就会刷新的状态)  设置正在刷新状态的动画图片 */

- (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;

}

上一篇下一篇

猜你喜欢

热点阅读