【发布时间】:2019-09-25 12:49:14
【问题描述】:
我为我的 tableview 创建了 3 个自定义 .xib 文件。 但我无法弄清楚每个单元格的高度。
我已经在 viewdidLoad() 中实现了上面一行
tableview.estimatedRowHeight = 120
tableview.rowHeight = UITableView.automaticDimension
我刚刚在每个 .xib 文件中放了一个 uiview,有 4 个约束(前导、尾随、顶部、底部)
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
但它没有为我的单元格设置适当的高度。
只有当我对值进行硬编码时,它才会起作用。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 200
}
如何处理这个问题,因为数据很快就会变成动态的,我无法更改这些硬编码的值。
【问题讨论】:
-
您应该使用子视图的内容拥抱/抗压缩属性。
-
我在每个 xib 文件中只有一个 uiview,我已将内容拥抱优先级设置为 246(水平和垂直)。仍然没有发生。
-
你需要给xib设置一个高度,这样tableView才能计算行的高度。