Tableview 没有得到 Xib 文件的高度
Posted
技术标签:
【中文标题】Tableview 没有得到 Xib 文件的高度【英文标题】:Tableview not getting Xib files height 【发布时间】: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
如何处理这个问题,因为数据很快就会变成动态的,我无法更改这些硬编码的值。
【问题讨论】:
您应该使用子视图的内容拥抱/抗压缩属性。 ios dynamical height of UITableViewCell and heightForRowAtIndexPath的可能重复 我在每个 xib 文件中只有一个 uiview,我已将内容拥抱优先级设置为 246(水平和垂直)。仍然没有发生。 你需要给xib设置一个高度,这样tableView才能计算行的高度。 【参考方案1】:UIView 默认没有高度值。在您尝试时,这不会设置单元格的高度。
您可以尝试在已解决 4 个约束(前导、尾随、顶部、底部)的 UIView 中放置 UILabel 或 UIButton。
注意:如果你想要 UITableViewCell 的自动高度,UILabel 或 UIButton 还需要 4 个约束(前导、尾随、顶部、底部)。
【讨论】:
【参考方案2】:将你的UIView替换为UILabel并将行数设置为零,然后它会根据UILabel的内容自动取高度
【讨论】:
以上是关于Tableview 没有得到 Xib 文件的高度的主要内容,如果未能解决你的问题,请参考以下文章
点击时更改 TableView 高度(在 xib 中使用自动布局)
使用 Swift 3.0 中的数据在 Xib 中显示 tableView