前几天升级了Xcode9后,在对一个项目进行调试时突然发现有个使用UITableView的自定义Cell展示异常了,然后控制台报了一大堆的约束警告。
|
|
从log上看,觉得应该是tableview的高度设置有问题。于是查看对应 Controller 相关代码。
|
|
rowHeight
代码没有问题,无奈点开UITableView文件进行查看,发现还有个 rowHeight 属性,印象中之前如果使用 estimatedRowHeight 时不设置 rowHeight 也没有影响。考虑到log信息,决定添加上该属性设置
|
|
界面表现正常!
如果不设置 rowHeight 属性时,实现 UITableViewDelegate 协议的方法也可以,但是 从性能方面考虑,不建议使用协议的方式 。
|
|
结论
应该是Xcode9在处理UITableView时,对属性 rowHeight 的支持出现了问题。以下摘自UIKit中源码。
|
|
注释中提到该属性的默认值就是UITableViewAutomaticDimension。