ios基于MJRefresh实现上拉刷新和下拉加载动画效果
发布时间 - 2026-01-11 02:45:30 点击率:次本文介绍了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
# 上拉加载下拉刷新
# ios下拉刷新
# ios上拉加载
# iOS实现MJRefresh下拉刷新(上拉加载)使用详解
# 举例讲解iOS中延迟加载和上拉刷新/下拉加载的实现
# iOS开发之UITableView与UISearchController实现搜索及上拉加载
# 下拉刷新实例代码
# iOS列表上拉(平滑加载数据)自动加载数据的问题解决
# 就会
# 重写
# 给大家
# 大家多多
# 加载
# pragma
# super
# prepare
# mark
# void
# UIImage
# image
# NSUInteger
# NSMutableArray
# idleImages
# array
# implementation
# pre
# class
# brush
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Android GridView 滑动条设置一直显示状态(推荐)
简单实现Android验证码
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Java类加载基本过程详细介绍
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
手机网站制作与建设方案,手机网站如何建设?
如何在橙子建站上传落地页?操作指南详解
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel如何实现模型的全局作用域?(Global Scope示例)
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何选择可靠的免备案建站服务器?
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
如何在建站宝盒中设置产品搜索功能?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何快速登录WAP自助建站平台?
Android滚轮选择时间控件使用详解
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel怎么连接多个数据库_Laravel多数据库连接配置
Laravel distinct去重查询_Laravel Eloquent去重方法
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何挑选最适合建站的高性能VPS主机?
Laravel如何处理CORS跨域请求?(配置示例)
如何快速使用云服务器搭建个人网站?
Android自定义控件实现温度旋转按钮效果
常州企业网站制作公司,全国继续教育网怎么登录?
如何在服务器上三步完成建站并提升流量?
韩国服务器如何优化跨境访问实现高效连接?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Linux系统命令中screen命令详解
进行网站优化必须要坚持的四大原则
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
魔毅自助建站系统:模板定制与SEO优化一键生成指南
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?

