iOS 开发_UITableView刷新闪屏偏移问题

2019-02-21  本文已影响0人  iOS_PM_WEB_尛鹏

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!

1.应用场景:

在iOS11系统更新后,做程序兼容时,频繁性的会出现UITableView刷新时,屏幕的闪屏Bug

2.实现目标:

分析解决此Bug

3.代码说明:

1.视图漂移或者闪动原因:
苹果自iOS11后系统默认开启Self-Sizing,首先要知道Self-Sizing
起到的作用。官方文档解释如此:大概就是说我们不用再自己去计算cell的高度了,
只要设置好这两个属性,约束好布局,系统会自动计算好cell的高度。 
IOS11以后,Self-Sizing默认开启,包括Headers, footers。
如果项目中没使用estimatedRowHeight属性,
在IOS11下会出现一些特殊的现象,因为IOS11之前,
estimatedRowHeight默认为0,Self-Sizing自动打开后,
contentSize和contentOffset都可能发生改变。

不知苹果是否会在后续的API更新中再做调整,为了保险 与兼容性更好,可在判断中做响应的调整: 如下⤵️

/** 在对应的tableView初始化时加入下面的判断及属性初值 */
if (@available(iOS 11.0, *)){
    self.tableView.estimatedRowHeight = 0;
    self.tableView.estimatedSectionHeaderHeight = 0;
    self.tableView.estimatedSectionFooterHeight = 0;
}
上一篇下一篇

猜你喜欢

热点阅读