分享

基于MJRefresh实现上拉刷新和下拉加载动画效果

 sungkmile 2017-07-05
目录

1、 头部刷新动画
2、尾部刷新动画

头部刷新动画
#import <MJRefresh/MJRefresh.h>

@interface HZNormalHeader : MJRefreshGifHeader

@end
#import "HZNormalHeader.h"

@implementation HZNormalHeader

#pragma mark - 重写父类的方法
- (void)prepare{
    [super prepare];

    // 设置普通状态的动画图片
    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];
    }
    [self setImages:idleImages forState:MJRefreshStateIdle];

    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
    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];
    }
    [self setImages:refreshingImages forState:MJRefreshStatePulling];

    // 设置正在刷新状态的动画图片
    [self setImages:refreshingImages forState:MJRefreshStateRefreshing];

    //隐藏时间
    self.lastUpdatedTimeLabel.hidden = NO;
    //隐藏状态
    self.stateLabel.hidden = NO;
}
实现部分
self.tableView.mj_header =  [HZNormalHeader headerWithRefreshingBlock:^{
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.tableView.mj_header endRefreshing];
        });

    }];
尾部刷新动画
#import <MJRefresh/MJRefresh.h>

@interface XZZNormalFooter : MJRefreshAutoGifFooter

@end
#import "XZZNormalFooter.h"

@implementation XZZNormalFooter


#pragma mark - 重写父类的方法
- (void)prepare{
    [super prepare];

    // 设置普通状态的动画图片
    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];
    }
    [self setImages:idleImages forState:MJRefreshStateIdle];

    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
    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];
    }
    [self setImages:refreshingImages forState:MJRefreshStatePulling];

    // 设置正在刷新状态的动画图片
    [self setImages:refreshingImages forState:MJRefreshStateRefreshing];

    //隐藏时间
//    self.lastUpdatedTimeLabel.hidden = NO;
    /*隐藏*/
    self.refreshingTitleHidden = YES;
    //隐藏状态
    self.stateLabel.hidden = YES;
}

@end
实现部分
self.tableView.mj_footer = [XZZNormalFooter footerWithRefreshingBlock:^{
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.tableView.mj_footer endRefreshing];
        });
    }];
完美!辛小二~

本人个人微信公众号地址(喜欢记得关注??)


辛小二个人微信公众号地址

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多