iOS11 之后tableview Reload 再设置setContentOffset 不会执行

1.视图漂移或者闪动原因: 

因为iOS 11后系统默认开启Self-Sizing,首先要知道Self-Sizing是个什么东东。官方文档是这样解释的:大概就是说我们不用再自己去计算cell的高度了,只要设置好这两个属性,约束好布局,系统会自动计算好cell的高度。 

IOS11以后,Self-Sizing默认开启,包括Headers, footers。如果项目中没使用estimatedRowHeight属性,在IOS11下会有奇奇怪怪的现象,因为IOS11之前,estimatedRowHeight默认为0,Self-Sizing自动打开后,contentSize和contentOffset都可能发生改变。 

所以可以通过以下方式禁用:

在tableView初始化的地方加入下面代码

    self.tableView.estimatedRowHeight = 0;    self.tableView.estimatedSectionHeaderHeight = 0;    self.tableView.estimatedSectionFooterHeight = 0;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆、动态的新风格。 本文介绍iOS11中在UI方面做了哪...
    阿凡提说AI阅读 674评论 0赞 1
  • 本文为作者原创,未经作者允许不得转载。该文同时发表在腾讯bugly公众号:https://mp.weixin.qq...
    sonialiu阅读 102,023评论 74赞 283
  • 导航栏变化 高度变化 在iOS11中导航栏多了一个LargeTitleView,专门专门显示大字标题。该Large...
    辰牧殇阅读 1,130评论 4赞 6
  • 最近 升级Xcode 9 + iOS 11后,发现原本没问题的tableView出现了好多异常。 一、头部刷新UI...
    我的咯嗨阅读 11,194评论 10赞 19
  • 有娘在的地方就是温暖的家。年前,娘从海南打工回到河南老家,把简陋的三间瓦屋和院子收拾的干干净净整整齐齐,使清冷寂寞...
    云水禅心千古情阅读 409评论 0赞 0

友情链接更多精彩内容