大佬教程收集整理的这篇文章主要介绍了Android开发中MJRefresh自定义刷新动画效果,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
【一】常见用法
最原始的用法,耦合度低,但是不能统一管理。我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个控制器的去定位、修改。
1.1 使用默认刷新(耦合度底,但是想统一修改起来特别麻烦)
self.tableView.mj_header = [MJrefreshNormalHeader headerWithrefreshingBlock:^{ //在这里执行刷新操作 }]; self.tableView.mj_header = [MJrefreshNormalHeader headerWithrefreshingTarget:self refreshingAction:@SELEctor(刷新方法)];
//1.2.1新建一个自定义刷新 MJrefreshNormalHeader *customRef =[MJrefreshNormalHeader headerWithrefreshingBlock:^{ //1.2.2在这里执行刷新操作 }]; //1.2.3 自定义刷新状态文字 [customRef settitle:@"普通闲置状态" forState:MJrefreshStatEIDle]; [customRef settitle:@"松开就可以进行刷新的状态" forState:MJrefreshStatePulling]; [customRef settitle:@"正在刷新中的状态" forState:MJrefreshStaterefreshing]; [customRef settitle:@"即将刷新的状态" forState:MJrefreshStateWillrefresh]; [customRef settitle:@"所有数据加载完毕,没有更多的数据了" forState:MJrefreshStateNoMoreData]; //1.2.4添加下拉刷新 self.tableView.mj_header = customRef; //一些其他属性设置 /* // 设置字体 customRef.stateLabel.font = [UIFont systemFontOfSize:15]; customRef.LASTUPDATEDTimeLabel.font = [UIFont systemFontOfSize:14]; // 设置颜色 customRef.stateLabel.textColor = [UIColor redColor]; customRef.LASTUPDATEDTimeLabel.textColor = [UIColor blueColor]; // 隐藏时间 customRef.LASTUPDATEDTimeLabel.hidden = YES; // 隐藏状态 customRef.stateLabel.hidden = YES; // 设置自动切换透明度(在导航栏下面自动隐藏) customRef.automaticallyChangeAlpha = YES; */
假如我们想实现默认的下拉刷新,
【2.1】只要新建一个对象,
继承自MJrefreshNormalHeader,
【2.2】然后重写方法- (void)prepare,重写后记得实现[super prepare],
#import "HsnormalHeader.h" @implementation HsnormalHeader #pragma mark - 重写父类的方法 - (void)prepare{ [super prepare]; //所有的自定义东西都放在这里 [self settitle:@"普通闲置状态" forState:MJrefreshStatEIDle]; [self settitle:@"松开就可以进行刷新的状态" forState:MJrefreshStatePulling]; [self settitle:@"正在刷新中的状态" forState:MJrefreshStaterefreshing]; [self settitle:@"即将刷新的状态" forState:MJrefreshStateWillrefresh]; [self settitle:@"所有数据加载完毕,没有更多的数据了" forState:MJrefreshStateNoMoreData]; //一些其他属性设置 /* // 设置字体 self.stateLabel.font = [UIFont systemFontOfSize:15]; self.LASTUPDATEDTimeLabel.font = [UIFont systemFontOfSize:14]; // 设置颜色 self.stateLabel.textColor = [UIColor redColor]; self.LASTUPDATEDTimeLabel.textColor = [UIColor blueColor]; // 隐藏时间 self.LASTUPDATEDTimeLabel.hidden = YES; // 隐藏状态 self.stateLabel.hidden = YES; // 设置自动切换透明度(在导航栏下面自动隐藏) self.automaticallyChangeAlpha = YES; */ } //如果需要自己重新布局子控件 - (void)placeSubviews{ [super placeSubviews]; //如果需要自己重新布局子控件,请在这里设置 //箭头 // self.arrowView.center = } @end
然后我们再对应的控制器实现刷新只要这样既可:
【2.3】引入自定义对象,比如叫HsnormalHeader(继承自MJrefreshNormalHeader),
#import "HsnormalHeader.h"
【2.4】在需要下拉刷新的控制器这样实现既可
同理,对应的下拉动画只需新建对象继承自MJrefreshGifHeader
#pragma mark - 重写父类的方法 - (void)prepare{ [super prepare]; // 设置普通状态的动画图片 NSMutableArray *idleImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=60; i++) { UIImage *image = [UIImage imagenamed:[NSString StringWithFormat:@"dropdown_anim__000%zd",i]]; [idleImages addObject:image]; } [self setImages:idleImages forState:MJrefreshStatEIDle]; // 设置即将刷新状态的动画图片(一松开就会刷新的状态) NSMutableArray *refreshingImages = [NSMutableArray array]; for (NSUInteger i = 1; i<=3; i++) { UIImage *image = [UIImage imagenamed:[NSString StringWithFormat:@"dropdown_loading_0%zd",i]]; [refreshingImages addObject:image]; } [self setImages:refreshingImages forState:MJrefreshStatePulling]; // 设置正在刷新状态的动画图片 [self setImages:refreshingImages forState:MJrefreshStaterefreshing]; //隐藏时间 self.LASTUPDATEDTimeLabel.hidden = YES; //隐藏状态 self.stateLabel.hidden = YES; }
至此,可以说MJrefresh的常用主要功能都已经被你掌握完毕,如需掌握更多请去参考MJ的地址
https://github.com/CoderMJLee/MJRefresh
本案例的demo地址为https://github.com/wolfhous/HSupdateApp
以上所述是小编给大家介绍的Android开发中MJrefresh自定义刷新动画效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
以上是大佬教程为你收集整理的Android开发中MJRefresh自定义刷新动画效果全部内容,希望文章能够帮你解决Android开发中MJRefresh自定义刷新动画效果所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。