MJRefresh 2014年版本 下拉刷新箭头回不去,不会隐藏掉
我们公司的旧项目导入了MJRefresh 2014年版本,里面有个bug, 没有找到原因!就是当tableview页面下拉刷新时候,刷新请求还没有结束,然后跳转到别的页面。然后回来刷新请求的页面,这时候有很大的几率刷新的箭头、文字描述这些都收不回去啊。而且如果多次进行切换,头部控件会一直往下移!我在viewWillDisappear,viewDidDisappear:调用[self.tableView headerEndRefreshing];也没效果!!!有人遇到类似情况吗????
感觉问题是出在MJRefresh的MJRefreshHeaderView.m里面的下面这个方法中,但找不到该怎么改。。。
#pragma mark 设置状态
(void)setState:(MJRefreshState)state
{
// 1.一样的就直接返回
if (_state == state) return;// 2.保存旧状态
MJRefreshState oldState = _state;// 3.调用父类方法
[super setState:state];// 4.根据状态执行不同的操作
switch (state) {case MJRefreshStatePulling: // 松开可立即刷新 { // 设置文字 _statusLabel.text = MJRefreshHeaderReleaseToRefresh; // 执行动画 [UIView animateWithDuration:MJRefreshAnimationDuration animations:^{ _arrowImage.transform = CGAffineTransformMakeRotation(M_PI); UIEdgeInsets inset = _scrollView.contentInset; inset.top = _scrollViewInitInset.top; _scrollView.contentInset = inset; }]; break; } case MJRefreshStateNormal: // 下拉可以刷新 { // 设置文字 _statusLabel.text = MJRefreshHeaderPullToRefresh; // 执行动画 [UIView animateWithDuration:MJRefreshAnimationDuration animations:^{ _arrowImage.transform = CGAffineTransformIdentity; UIEdgeInsets inset = _scrollView.contentInset; inset.top = _scrollViewInitInset.top; _scrollView.contentInset = inset; }]; // 刷新完毕 if (MJRefreshStateRefreshing == oldState) { // 保存刷新时间 self.lastUpdateTime = [NSDate date]; } break; } case MJRefreshStateRefreshing: // 正在刷新中 { // 设置文字 _statusLabel.text = MJRefreshHeaderRefreshing; // 执行动画 [UIView animateWithDuration:MJRefreshAnimationDuration animations:^{ _arrowImage.transform = CGAffineTransformIdentity; // 1.增加65的滚动区域 UIEdgeInsets inset = _scrollView.contentInset; inset.top = _scrollViewInitInset.top + MJRefreshViewHeight; _scrollView.contentInset = inset; // 2.设置滚动位置 _scrollView.contentOffset = CGPointMake(0, - _scrollViewInitInset.top - MJRefreshViewHeight); }]; break; } default: break;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题解决,在控制器的viewWillDisappear方法里面调用一下[_header endRefreshing]即可~