UITableViewAutomaticDimension的坑

项目中遇到一个坑,项目中某个界面tableview的cell使用了动态变高,cell的高度设置为UITableViewAutomaticDimension,手头的iOS11、iOS12都可以正常显示,没有问题。后来陆续有客户反馈该界面显示异常,调查后发现用户都是iOS10、iOS9的系统,检查代码,确认cell的内部约束正常,谷歌一顿搜索也没有找到原因。
没办法,只能自己做了一些尝试,发现写死一个适当的cell高度,tableview内容可以显示出来,然后就顺势尝试了一下设置tableviewestimatedRowHeight属性

self.photoClaimTableView.estimatedRowHeight = zScaleH(370);
(这个值不必特别精准,只要和cell的可能高度相差不是很大就可以了)

发现问题居然解决了。至于estimatedRowHeight属性为什么会有这样的效果暂未研究。

结论:经过测试,iOS8、11、12使用UITableViewAutomaticDimension设置cell高度时,不设置estimatedRowHeight值不会有什么影响,但是iOS9、10系统必须设置该值,并且必须是一个具体值(self.photoClaimTableView.estimatedRowHeight = UITableViewAutomaticDimension是无效的),否则tableview无法正常显示。

你可能感兴趣的:(UITableViewAutomaticDimension的坑)