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无法正常显示。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们在上一篇《通过代码自定义不等高cell》中学习了tableView的相关知识,本文将在上文的基础上,利用sto...
    啊世ka阅读 1,543评论 2 7
  • 版权声明:未经本人允许,禁止转载. 1. TableView初始化 1.UITableView有两种风格:UITa...
    萧雪痕阅读 2,920评论 2 10
  • 原文地址:http://codingobjc.com/blog/2014/10/15/shi-yong-autol...
    默默_David阅读 5,393评论 3 14
  • 旧橱柜里藏着新物件 一个邀请函 某年某月某日某人拿着手表相见定终生 怕有人偷走了它 你把它掖在最底层与黑暗共眠 同...
    倩何人换取阅读 316评论 0 1
  • 红尘难以看破,人生却可悟透。 浮沉中涵养淡定从容的定力,潮起潮落之间举重若轻,风云变幻之际击节而歌,还生命一份洒脱...
    Life_53a9阅读 46评论 0 0