ios基于MJRefresh实现上拉刷新和下拉加载动画效果
本文介绍了ios基于MJRefresh实现上拉刷新和下拉加载动画效果,分享给大家,具体如下:
目录
1、头部刷新动画
2、尾部刷新动画
头部刷新动画
#import@interfaceHZNormalHeader:MJRefreshGifHeader @end
#import"HZNormalHeader.h"
@implementationHZNormalHeader
#pragmamark-重写父类的方法
-(void)prepare{
[superprepare];
//设置普通状态的动画图片
NSMutableArray*idleImages=[NSMutableArrayarray];
for(NSUIntegeri=1;i<=60;i++){
UIImage*image=[UIImageimageNamed:[NSStringstringWithFormat:@"dropdown_anim__000%zd",i]];
[idleImagesaddObject:image];
}
[selfsetImages:idleImagesforState:MJRefreshStateIdle];
//设置即将刷新状态的动画图片(一松开就会刷新的状态)
NSMutableArray*refreshingImages=[NSMutableArrayarray];
for(NSUIntegeri=1;i<=3;i++){
UIImage*image=[UIImageimageNamed:[NSStringstringWithFormat:@"dropdown_loading_0%zd",i]];
[refreshingImagesaddObject:image];
}
[selfsetImages:refreshingImagesforState:MJRefreshStatePulling];
//设置正在刷新状态的动画图片
[selfsetImages:refreshingImagesforState:MJRefreshStateRefreshing];
//隐藏时间
self.lastUpdatedTimeLabel.hidden=NO;
//隐藏状态
self.stateLabel.hidden=NO;
}
实现部分
self.tableView.mj_header=[HZNormalHeaderheaderWithRefreshingBlock:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(1*NSEC_PER_SEC)),dispatch_get_main_queue(),^{
[self.tableView.mj_headerendRefreshing];
});
}];
尾部刷新动画
#import@interfaceXZZNormalFooter:MJRefreshAutoGifFooter @end
#import"XZZNormalFooter.h"
@implementationXZZNormalFooter
#pragmamark-重写父类的方法
-(void)prepare{
[superprepare];
//设置普通状态的动画图片
NSMutableArray*idleImages=[NSMutableArrayarray];
for(NSUIntegeri=1;i<=60;i++){
UIImage*image=[UIImageimageNamed:[NSStringstringWithFormat:@"dropdown_anim__000%zd",i]];
[idleImagesaddObject:image];
}
[selfsetImages:idleImagesforState:MJRefreshStateIdle];
//设置即将刷新状态的动画图片(一松开就会刷新的状态)
NSMutableArray*refreshingImages=[NSMutableArrayarray];
for(NSUIntegeri=1;i<=3;i++){
UIImage*image=[UIImageimageNamed:[NSStringstringWithFormat:@"dropdown_loading_0%zd",i]];
[refreshingImagesaddObject:image];
}
[selfsetImages:refreshingImagesforState:MJRefreshStatePulling];
//设置正在刷新状态的动画图片
[selfsetImages:refreshingImagesforState:MJRefreshStateRefreshing];
//隐藏时间
//self.lastUpdatedTimeLabel.hidden=NO;
/*隐藏*/
self.refreshingTitleHidden=YES;
//隐藏状态
self.stateLabel.hidden=YES;
}
@end
实现部分
self.tableView.mj_footer=[XZZNormalFooterfooterWithRefreshingBlock:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(1*NSEC_PER_SEC)),dispatch_get_main_queue(),^{
[self.tableView.mj_footerendRefreshing];
});
}];
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。