基于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