<span style="font-size:18px;"><strong>以下拉为例</strong>:</span>
MJRefreshGifHeader *header = [MJRefreshGifHeaderheaderWithRefreshingTarget:selfrefreshingAction:@selector(request)];
NSMutableArray *refreshingImages = [NSMutableArrayarray];
for (NSUInteger i =1; i<=59; i++) {
UIImage *image = [UIImageimageNamed:[NSStringstringWithFormat:@"图层-%zd", i]];
[refreshingImages addObject:image];
}
NSMutableArray *idleImages = [NSMutableArrayarray];
for (NSUInteger i =60; i<=62; i++) {
UIImage *image = [UIImageimageNamed:[NSStringstringWithFormat:@"图层-%zd", i]];
[idleImages addObject:image];
}
// 设置普通状态的动画图片
[header setImages:idleImagesforState:MJRefreshStateIdle];
// 设置即将刷新状态的动画图片(一松开就会刷新的状态)
[header setImages:refreshingImagesforState:MJRefreshStatePulling];
// 设置正在刷新状态的动画图片
[header setImages:refreshingImagesforState:MJRefreshStateRefreshing];
// 设置header
self.tableView.mj_header = header;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(4.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.tableView.mj_headerendRefreshing];
});
不过项目中一般会用很多地方用的到刷新 ,所以一般的做法还是自定义一个继承自MJRefreshGifHeader的类,在里面实现prepare方法,设置动画用到的图片数组。就ok了。
关于动画时间的问题,可以在自定义类中实现这个方法来修改动画时间。
- (void)setImages:(NSArray *)images forState:(MJRefreshState)state
{
[selfsetImages:images duration:images.count *0.1 forState:state];
}