基于MJ的仿gif刷新动画

作者: 武小寺 | 来源:发表于2015-11-04 12:26 被阅读1043次

    每次看到比较好看的刷新动画都感觉好厉害,今天有时间看了一下MJ的gif的动画刷新,原来很简单.

    • 1 首先下载一个MJRefresh的三方库,使用CocoaPods导入也可以,直接拖入工程也是可以的.[链接地址]: https://github.com/CoderMJLee/MJRefresh

    • 2 然后new一个新的文件,继承于MJRefreshGifHeader

    屏幕快照 2015-11-04 下午12.07.44.png
    • 3 然后在这个新建的文件里,重写prepare这个方法,将MJ原始的gif的图片改成自己的图片数组即可.
    // 设置普通状态的动画图片
        NSMutableArray *idleImages = [NSMutableArray array];
        for (NSUInteger i = 0; i <= 50; i++) {
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"stars-%d.png", i]];
            [idleImages addObject:image];
        }
        [self setImages:idleImages forState:MJRefreshStateIdle];
        
        // 设置即将刷新状态的动画图片(一松开就会刷新的状态)
        NSMutableArray *refreshingImages = [NSMutableArray array];
        for (NSUInteger i = 50; i<= 84; i++) {
            UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"stars-%d.png", i]];
            [refreshingImages addObject:image];
        }
        [self setImages:refreshingImages forState:MJRefreshStatePulling];
        
        // 设置正在刷新状态的动画图片
        [self setImages:refreshingImages forState:MJRefreshStateRefreshing];
    
    • 4 调用的时候,将MJ里面的显示时间和状态的label隐藏即可实现效果.
     GTRefreshGifHeader *header = [GTRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
        // 隐藏时间
        header.lastUpdatedTimeLabel.hidden = YES;
        // 隐藏状态
        header.stateLabel.hidden = YES;
        self.tableView.header = header;
        // 马上进入刷新状态
        [self.tableView.header beginRefreshing];
    

    效果如下

    Simulator Screen Shot 2015年11月4日 下午12.25.27.png
    github链接: https://github.com/WWLJ/GIFRefresh.git

    相关文章

      网友评论

        本文标题:基于MJ的仿gif刷新动画

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