您的位置:首页 > 移动开发 > IOS开发

iOS11 TableView reloadData 后出现contentSize计算不准确的情况

2019-03-29 15:34 686 查看

原因:

在iOS 11中默认启用Self-Sizing。

而在开启Self-Sizing之后,TableView会使用estimateRowHeight属性,就会造成contentSize和contentOffset值的变化。
因为不会缓存正确的行高,在TableView reloadData的时候,就会重新计算contentSize,从而引起contentOffset的变化。

解决:

知道了原因之后,问题就好解决了,只需要关闭这个功能就行了。

[UITableView appearance].estimatedRowHeight = 0;
[UITableView appearance].estimatedSectionFooterHeight = 0;
[UITableView appearance].estimatedSectionHeaderHeight = 0;

注意三个属性都需要设置,即使你没用到sectionHeader或者sectionFooter也要设置!!!
注意三个属性都需要设置,即使你没用到sectionHeader或者sectionFooter也要设置!!!
注意三个属性都需要设置,即使你没用到sectionHeader或者sectionFooter也要设置!!!

重要的事情说三遍。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: