文档章节

iOS MJRefresh下拉刷新 上拉加载(可添加gif图版) 小结

如若初见
 如若初见
发布于 2016/04/15 22:50
字数 411
阅读 199
收藏 2

先看下需要用到的属性

@property (nonatomic,strong) NSArray *datasArray;@property (nonatomic,strong) UITableView *tableView;@property (nonatomic,strong) NSMutableArray *refreshImages;//刷新动画的图片数组@property (nonatomic,strong) NSMutableArray *normalImages;//普通状态下的图片数组@property (nonatomic,strong) NSTimer *timer;//模拟数据刷新需要的时间控制器@property (nonatomic,assign) int time;

创建一个TableView,并实现代理

 self.tableView = [[UITableView alloc]init];
[self.view addSubview:self.tableView];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {  make.top.equalTo(self.view.mas_top).with.offset(30);  make.left.and.right.equalTo(self.view);  make.bottom.equalTo(self.view);
}];self.tableView.delegate = self;self.tableView.dataSource = self;

然后开始创建下拉刷新的header

MJRefreshGifHeader *header =[MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];
    [header setImages:self.refreshImages forState:MJRefreshStateRefreshing];
    [header setImages:self.normalImages forState:MJRefreshStateIdle];
    [header setImages:self.refreshImages forState:MJRefreshStatePulling];
    header.lastUpdatedTimeLabel.hidden= YES;//如果不隐藏这个会默认 图片在最左边不是在中间
    header.stateLabel.hidden = YES;    self.tableView.mj_header = header;

因为gif图片需要一帧一帧图片添加 所以self.refreshImages 是个存储图片的数组,还有normalImages 用  懒加载 (点击查看什么是懒加载) 

/**
 *  @author   (๑• . •๑) xiaoqiB, 15-11-24 15:11:06
 *  普通状态下的图片
 */- (NSMutableArray *)normalImages
{  if (_normalImages == nil) {    _normalImages = [[NSMutableArray alloc] init];    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropDown_1"]];    [self.normalImages addObject:image];  }  return _normalImages;
}//正在刷新状态下的图片- (NSMutableArray *)refreshImages
{  if (_refreshImages == nil) {    _refreshImages = [[NSMutableArray alloc] init];    //				循环添加图片    for (NSUInteger i = 1; i<=8; i++) {      UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropDown_%ld", i]];      [self.refreshImages addObject:image];    }  }  return _refreshImages;
}

下面是刷新时 需要调用的方法,本应是获取网路数据的方法,并在获取到网络数据时或者获取失败时,停止刷新

-(void)loadNewData {  //模拟刷新的时间  self.timer  =[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeAction) userInfo:nil repeats:YES];  self.time = 3;
}
-(void)timeAction {  self.time --;  NSLog(@"%d",self.time);  if (self.time == 0) {    //		刷新数据    [_tableView reloadData];    //		停止刷新    [_tableView.mj_header endRefreshing];    [self.timer invalidate];  }
}


© 著作权归作者所有

如若初见
粉丝 20
博文 30
码字总数 22876
作品 0
私信 提问
加载中

评论(1)

swallowYan
swallowYan
楼主很厉害的样子,多多指教!
iOS WKWebView UI增强(上拉刷新,JS交互,加载进度条)

iOS WKWebView UI增强(上拉刷新,JS交互,加载进度条) 需求:WKWebView的一些增加模块,例如上拉刷新,JS交互,加载进度条等等持续更新 阅读前提: } catch(error) { } } (void)headerRefres...

__小___东邪___
2018/11/06
0
0
iOS中UITableViewController自带的刷新控件

iOS中UITableViewController自带的刷新控件 一、引言 在iOS开发中,使用tableView的界面,大多会用到一个下拉刷新的的控件,第三方库中,我们一般会选择比较好用的MJRefresh,其实,在iOS6之...

珲少
2015/11/05
2.8K
3
常用iOS开发网站资源

图标 https://icomoon.io/app/#/select http://iconfont.cn/repositories http://www.iconfont.cn Api数据接口 聚合数据:http://www.juhe.cn 百度APIStore:http://apistore.baidu.com 医药......

请天点
2016/12/29
196
0
适配iOS11 - UITableview UICollectionView MJRefresh下拉刷新错乱

适配iOS11 - UITableview UICollectionView MJRefresh下拉刷新错乱 最新iOS 11 & iPhone X适配方案传送门:10分钟适配 iOS11 & iPhoneX 发现问题 升级Xcode 9 + iOS 11后,发现原本没问题的c...

壹峰
2018/10/10
26
0
推荐几个牛逼的iOS开发常用框架及Xcode插件

管理工具 1. CocoaPods 搞iOS开发的应该都知道的,管理框架,并解决依赖问题。不可不用。下面用到的框架基本都可以用这个搜索和进行安装。怎么用搜搜教程就好了。和后文提到的配套使用,操作...

Harry_1234
2017/10/23
69
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
4
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
8
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部