项目中遇到一个坑,项目中某个界面tableview的cell使用了动态变高,cell的高度设置为UITableViewAutomaticDimension
,手头的iOS11、iOS12都可以正常显示,没有问题。后来陆续有客户反馈该界面显示异常,调查后发现用户都是iOS10、iOS9的系统,检查代码,确认cell
的内部约束正常,谷歌一顿搜索也没有找到原因。
没办法,只能自己做了一些尝试,发现写死一个适当的cell高度,tableview
内容可以显示出来,然后就顺势尝试了一下设置tableview
的estimatedRowHeight
属性
self.photoClaimTableView.estimatedRowHeight = zScaleH(370);
(这个值不必特别精准,只要和cell的可能高度相差不是很大就可以了)
发现问题居然解决了。至于estimatedRowHeight
属性为什么会有这样的效果暂未研究。
结论:经过测试,iOS8、11、12使用UITableViewAutomaticDimension
设置cell
高度时,不设置estimatedRowHeight
值不会有什么影响,但是iOS9、10系统必须设置该值,并且必须是一个具体值(self.photoClaimTableView.estimatedRowHeight = UITableViewAutomaticDimension
是无效的),否则tableview
无法正常显示。