本篇文章主要介绍了ios基于MJRefresh实现上拉刷新和下拉加载动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文介绍了ios基于MJRefresh实现上拉刷新和下拉加载动画效果,分享给大家,具体如下:
目录
1、 头部刷新动画
2、尾部刷新动画
头部刷新动画
#import <MJRefresh/MJRefresh.h>
@interface HZNormalHeader : MJRefreshGifHeader
@end
#import "HZNormalHeader.h"
@implementation HZNormalHeader
#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 = NO;
//隐藏状态
self.stateLabel.hidden = NO;
}
实现部分
self.tableView.mj_header = [HZNormalHeader headerWithRefreshingBlock:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.tableView.mj_header endRefreshing];
});
}];
尾部刷新动画
#import <MJRefresh/MJRefresh.h>
@interface XZZNormalFooter : MJRefreshAutoGifFooter
@end
#import "XZZNormalFooter.h"
@implementation XZZNormalFooter
#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 = NO;
/*隐藏*/
self.refreshingTitleHidden = YES;
//隐藏状态
self.stateLabel.hidden = YES;
}
@end
实现部分
self.tableView.mj_footer = [XZZNormalFooter footerWithRefreshingBlock:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.tableView.mj_footer endRefreshing];
});
}];
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:ios基于MJRefresh实现上拉刷新和下拉加载动画效果


基础教程推荐
猜你喜欢
- iOS提取APP中的图片资源的方法 2023-04-01
- Android Studio打包H5网址页面,封装成APK 2023-05-04
- iOS列表上拉(平滑加载数据)自动加载数据的问题解决 2023-07-01
- iOS 把图片保存到相册,并获取图片文件名的实例 2023-04-19
- android中adb命令最全总结 2023-04-11
- 使用反射机制控制Toast的显示时间 2022-11-01
- IOS开发中使用writeToFile时的注意事项 2023-02-20
- iOS触摸事件UITouch应用详解 2023-03-16
- AndroidStudio4.0日志中文乱码问题 2023-02-26
- Flutter实现App功能引导页 2022-12-04