美文网首页
MJRefresh 下拉刷新

MJRefresh 下拉刷新

作者: 淡淡的邪恶 | 来源:发表于2017-12-25 18:44 被阅读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;

    }

    相关文章

      网友评论

          本文标题:MJRefresh 下拉刷新

          本文链接:https://www.haomeiwen.com/subject/pkfrgxtx.html