美文网首页iOS开发知识小集
MJRefresh上拉加载更多Bug

MJRefresh上拉加载更多Bug

作者: 海耐射手 | 来源:发表于2018-02-02 18:42 被阅读348次

        Bug描述:在列表数据的上拉加载更多中,有时会连续自己加载两次甚至多次!最初发现这个Bug的时候以为是自己哪里代码写的有问题呢,所以就一行一行排除,最后把其他不想关的代码都注释掉了,还是没能解决!最终黔驴技穷的我开始了百度,不百度不要急,原来是:在iOS11中MJRefresh随着tableView的变化而做了一些处理:

UITableView:默认开启Self-Sizing


关于TableView官方解释

好像大概意思是说:我们不再需要自己去计算cell的高度了,只要设置好这两个属性,约束好布局,系统会自动计算好cell的高度。IOS11以后,Self-Sizing默认开启,包括Headers, footers。如果项目中没使用estimatedRowHeight属性,在IOS11下会有奇奇怪怪的现象,因为IOS11之前,estimatedRowHeight默认为0,Self-Sizing自动打开后,contentSize和contentOffset都可能发生改变。可以通过以下方式禁用:

self.tableView.estimatedRowHeight = 0; 

self.tableView.estimatedSectionHeaderHeight = 0; 

self.tableView.estimatedSectionFooterHeight = 0;

解决办法:

在工程中加三行代码就搞定了:

 _tableView.estimatedRowHeight = 0;

  _tableView.estimatedSectionHeaderHeight = 0;

  _tableView.estimatedSectionFooterHeight = 0;

相关文章

网友评论

  • 042a0e1be73f:用了这三行代码就是关闭了Self-Sizing,动态行高就失效了!
    范哥编程:@iOSwift ~0.0 自己来计算frame的方式?
    042a0e1be73f:@范哥编程 我关掉了self-Sizing ,用自己的方法实现的自定义行高。。。。
    范哥编程:兄弟 找到解决办法了么? 上拉刷新循环调用 我不能关掉self-Sizing 我还要动态计算行高
  • LinkStart:👍👍👍非常感谢,帮大忙了!!👍👍👍
    海耐射手:@LinkStart 很高兴能帮到你,共同进步:fist::fist::fist:

本文标题:MJRefresh上拉加载更多Bug

本文链接:https://www.haomeiwen.com/subject/hswezxtx.html