基于MJ的仿gif刷新动画
2015-11-04 本文已影响1043人
武小寺
每次看到比较好看的刷新动画都感觉好厉害,今天有时间看了一下MJ的gif的动画刷新,原来很简单.
-
1 首先下载一个MJRefresh的三方库,使用CocoaPods导入也可以,直接拖入工程也是可以的.[链接地址]: https://github.com/CoderMJLee/MJRefresh
-
2 然后new一个新的文件,继承于MJRefreshGifHeader
- 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.pnggithub链接: https://github.com/WWLJ/GIFRefresh.git