【问题标题】:Tableview not getting Xib files heightTableview 没有得到 Xib 文件的高度
【发布时间】: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才能计算行的高度。

标签: ios swift tableview xib


【解决方案1】:

UIView 默认没有高度值。在您尝试时,这不会设置单元格的高度。

您可以尝试在已解决 4 个约束(前导、尾随、顶部、底部)的 UIView 中放置 UILabel 或 UIButton。

注意:如果你想要 UITableViewCell 的自动高度,UILabel 或 UIButton 还需要 4 个约束(前导、尾随、顶部、底部)。

【讨论】:

    【解决方案2】:

    将你的UIView替换为UILabel并将行数设置为零,然后它会根据UILabel的内容自动取高度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多