自动细胞高度没有自定义细胞?

时间:2015-09-03 23:54:52

标签: swift uitableview ios8

我希望iOS 8表格视图中的字幕样式单元格自动调整高度,以允许任意数量的行的字幕内容。并且,如果可能的话,我想在不使用自定义单元格的情况下实现此目的。也就是说,我想使用将新的TableViewController拖到故事板时可用的“罐头”原型单元格。

我发现使用Basic样式的单元格很容易做到这一点:即样式设置为“Basic”的原型单元格,因此单元格中只有一个标签 - “标题”,默认情况下。这是代码中的cell.textLabel!.text可以访问的标签。如果我将textLabel的行数设置为0,并将下面两行添加到viewDidLoad(),则单元格高度会自动调整大小:

    tableView.estimatedRowHeight = 144.0
    tableView.rowHeight = UITableViewAutomaticDimension

所有这些都无需定义自定义单元格或自动布局或约束。 (事实上​​,我发现不可能在罐装原型单元中添加约束。)

但是如果我将单元格样式更改为“Subtitle”,那么单元格中有两个标签 - 代码中的textLabel和detailTextLabel - 那么单元格不会自动调整高度,即使在设置两者之后(或者)将行号设为0并使用不同的estimatedRowHeight值进行播放。

我是否遗漏了某些内容,或者如果没有自定义单元格,是否无法自动调整单元格高度?

谢谢!

1 个答案:

答案 0 :(得分:3)

  

或者如果没有自定义单元格,是否无法自动调整单元格高度?

是的,这是不可能的。原因是你给的原因。自动调整大小的单元格高度功能取决于内部约束。但是,正如你正确地说:

  

无法在固定原型单元格中添加约束。

但是,请注意,您可以在不提供单元子类的情况下完成您想要的任务(尽管我个人喜欢提供一个)。您可以在原型单元格中设计您的单元格,约束和所有单元格 - 自定义原型单元格。