使用MJRefresh第三方库时遇到的问题

问题:设置好下拉刷新控件后测试,发现瞬间刷新并且tableview在下拉放手的时候快速弹回状态栏背后。

原因:

苹果ios11新协议:MJRefresh在iOS11.0中稍微下拉触发瞬间刷新事件自iOS11.0和iPhone X发布以来iOSDeveloper都要学习苹果给的新协议,MJRefresh在iOS11.0中也不能幸免,手势触摸屏幕,稍微下拉就会触发下拉刷新事件

@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets API_DEPRECATED_WITH_REPLACEMENT("Use UIScrollView's contentInsetAdjustmentBehavior instead", ios(7.0,11.0),tvos(7.0,11.0)); // Defaults to YES

iOS11.0也弃用了automaticallyAdjustsScrollViewInsets。

解决方法:

//状态栏和导航栏
    CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame];
    CGRect rectNav = self.navigationController.navigationBar.frame;
    
    //设置头部
    if (@available(iOS 11.0, *)) {
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    } else {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
    self.tableView.contentInset = UIEdgeInsetsMake(rectStatus.size.height + rectNav.size.height, 0, 0, 0);
    self.tableView.scrollIndicatorInsets = self.tableView.contentInset;
    
    // 下拉刷新
    tableView.mj_header= [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        [self loadTodayData];
        // 结束刷新
        [tableView.mj_header endRefreshing];
    }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,643评论 4 61
  • 直勾勾 一眼望不到边的眸子里 没有希望 无尽茫然 冷冰冰 死灰一般的飘荡了飘荡 无所谓生 谈不上死 机械 麻木不仁...
    抱一阅读 1,414评论 0 2
  • 闺蜜圈一妞晒出两张出国游机票,群里顿时炸了锅。 “哇,你也太潇洒了吧!” “羡慕嫉妒恨啊!” “瞧瞧人家这日子过的...
    等登等登阅读 4,666评论 0 1
  • 法令纹阅读 1,346评论 0 0
  • Number.prototype.toFixed返回值是String类型 在给React组件传prop的时候,对一...
    Quilljou阅读 2,361评论 0 2

友情链接更多精彩内容