ios开发为啥mjheader为啥刷新完了回不去了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发为啥mjheader为啥刷新完了回不去了相关的知识,希望对你有一定的参考价值。

1.首先去github上下载最新版 MJ刷新库。
2.tableVIew中加入相关代码
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, MCAPPWidth, MCAPPHeight - 64)];
_tableView.backgroundColor = myClearColor;
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.showsVerticalScrollIndicator = NO;
_tableView.scrollsToTop = YES;
[self.view addSubview:_tableView];
[_tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadData)];
[_tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
[self gif];

//loadData 为你下拉刷新时请求网络数据的方法 loadMoreData为你上拉加载时请求网络数据的方法
3. [self gif]
- (void)gif

NSMutableArray *idleImages = [NSMutableArray array];
//这块为你刷新时出现的gif图 需要循环添加到数组中
for (NSUInteger i = 1; i <= 5; i++)
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@img_loading-%lu.png, (unsigned long)i]];
[idleImages addObject:image];

[_tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];
_tableView.gifFooter.refreshingImages = idleImages;
_tableView.gifHeader.updatedTimeHidden = YES;
// 设置即将刷新状态的动画图片(一松开就会刷新的状态)
NSMutableArray *refreshingImages = [NSMutableArray array];
for (NSUInteger i = 1; i <= 5; i++)
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@img_loading-%lu.png, (unsigned long)i]];
[refreshingImages addObject:image];

[_tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStatePulling];


4. 自定义刷新时顶部底部出现的Label和gif图的frame 这里举footer的例子

MJRefreshGifFooter.m

- (void)layoutSubviews

[super layoutSubviews];
// 指示器 gif图的frame
self.gifView.frame = CGRectMake(self.bounds.origin.x + 20, self.bounds.origin.y + 15, self.bounds.size.width / 2, self.bounds.size.height / 2);

if (self.stateHidden)
self.gifView.contentMode = UIViewContentModeCenter;
else
self.gifView.contentMode = UIViewContentModeScaleAspectFit;
self.gifView.mj_w = self.mj_w * 0.5 - 90;


MJRefreshFooter.m
- (void)layoutSubviews

[super layoutSubviews];
self.loadMoreButton.frame = self.bounds;
self.loadMoreButton.hidden = YES;
//Label的frame
self.stateLabel.frame = CGRectMake(self.bounds.origin.x, self.bounds.origin.y + 15, self.bounds.size.width, self.bounds.size.height / 2);
self.noMoreLabel.frame = self.bounds;

同理header的gif图frame 和Labelframe 都在相应的类里的方法里 都可以根据需求去修改
更多的设置可以看下MJ在github上相关的文档。
参考技术A 刷新完以后调一下endRefreshing

以上是关于ios开发为啥mjheader为啥刷新完了回不去了的主要内容,如果未能解决你的问题,请参考以下文章

秒杀Navicat...!这个正版 MySQL 客户端,真香!用过就回不去了!

安装了英伟达驱动之后就卡在欢迎界面进不去了,为啥啊

为啥我的EVE进入登录界面 启动的LOGO完了以后 就没反映了进程显示在运行 任务显示无响应

为啥USB Redirector久了就上不去

RxjavaRetrofit返回json数据解析异常处理

RxjavaRetrofit返回json数据解析异常处理