【问题标题】:Automatic Cell Height Without Custom Cell?没有自定义单元格的自动单元格高度?
【发布时间】:2015-09-03 23:54:52
【问题描述】:

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

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

    tableView.estimatedRowHeight = 144.0
    tableView.rowHeight = UITableViewAutomaticDimension

所有这些都无需定义自定义单元格或使用自动布局或约束来解决问题。 (事实上​​,我发现不可能向罐装原型单元格添加约束。)

但是,如果我将单元格样式更改为“字幕”,以便单元格中有两个标签——代码中的 textLabel 和 detailTextLabel——那么单元格不会自动调整高度,即使在设置两者(或) 行号为 0 并使用不同的估计行高度值。

我是否遗漏了什么,或者如果没有自定义单元格就无法自动调整单元格高度?

谢谢!

【问题讨论】:

    标签: swift uitableview ios8


    【解决方案1】:

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

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

    不可能向固定原型单元格添加约束。

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

    【讨论】:

      猜你喜欢
      • 2011-11-27
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多