表格视图单元格行高度不起作用

Agu*_*ana 21 row-height uitableview ios swift

在此输入图像描述

我试图在表格视图单元格中硬编码行高.运行程序后,它看起来只有一行.我怀疑这是因为表视图行的高度.

你能告诉我这里出了什么问题吗?

Irf*_*fan 43

XCode 9中,tableview基于自动创建估计的单元格Autolayout.由于您尚未提供自动布局,因此您就是这样做的原因.

您需要通过选择tableview来禁用估计的和自动的单元格大小,并取消选中以下两个选项:

在此输入图像描述

为行高提供您想要的值,并相应地创建单元格.

希望这可以提供帮助.

  • 如果我有不同类型的不同高度的原型单元,我该怎么办? (2认同)

Leo*_*Leo 7

在您的 UITableViewDelegate 中添加此代码

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100
}
Run Code Online (Sandbox Code Playgroud)

  • 不,不要这样做。如果所有行都具有相同的高度,最好在 `viewDidLoad` 中简单地设置一次表视图的 `rowHeight` 属性。如果不同的行具有不同的高度,则仅实现此委托方法。 (5认同)
  • @dahiya_boy 您误读了文档。`UITableView rowHeight` 和 `UITableViewDelegate heightForRowAt` 的文档明确指出委托方法是一个性能问题。设置 `rowHeight` 属性比假设所有行具有相同高度的委托方法更有效。 (4认同)