没有自定义单元格的自动单元格高度?
Automatic Cell Height Without Custom Cell?
我希望我的 iOS 8 table 视图中的字幕样式单元格在高度上自动调整大小以允许任意行数的字幕内容。而且,如果可能的话,我想在不使用自定义单元格的情况下完成此操作。也就是说,我想使用将新的 TableViewController 拖到故事板时可用的 "canned" 原型单元格。
我发现使用 Basic 样式的单元格很容易做到这一点:也就是说,将 Style 设置为 "Basic" 的原型单元格,以便单元格中只有一个标签 -- "Title", 默认。这是代码中 cell.textLabel!.text 可访问的标签。如果我将 textLabel 的行数设置为 0,并将下面的两行添加到 viewDidLoad(),则单元格高度会自动调整大小:
tableView.estimatedRowHeight = 144.0
tableView.rowHeight = UITableViewAutomaticDimension
所有这些都无需定义自定义单元格或使用自动布局或约束。 (事实上 ,我发现不可能向罐装原型单元添加约束。)
但是如果我将单元格样式更改为 "Subtitle," 以便单元格中有两个标签——代码中的 textLabel 和 detailTextLabel——那么单元格不会自动调整高度,即使在设置了两个标签之后(或两者之一)行号为 0 并使用不同的 estimatedRowHeight 值。
我是不是遗漏了什么,或者没有自定义单元格就无法自动调整单元格高度?
谢谢!
or is it not possible to automatically resize cell height without a custom cell?
是的,这是不可能的。原因就是你给出的原因。自动调整单元格高度功能取决于 内部约束。但是,正如您所说:
it's not possible to add constraints to a canned prototype cell.
但是请注意,您可以在不提供单元子类的情况下完成您想要的(尽管我个人喜欢提供一个)。您可以直接在原型单元 — 自定义原型单元中设计您的单元、约束和所有内容。
我希望我的 iOS 8 table 视图中的字幕样式单元格在高度上自动调整大小以允许任意行数的字幕内容。而且,如果可能的话,我想在不使用自定义单元格的情况下完成此操作。也就是说,我想使用将新的 TableViewController 拖到故事板时可用的 "canned" 原型单元格。
我发现使用 Basic 样式的单元格很容易做到这一点:也就是说,将 Style 设置为 "Basic" 的原型单元格,以便单元格中只有一个标签 -- "Title", 默认。这是代码中 cell.textLabel!.text 可访问的标签。如果我将 textLabel 的行数设置为 0,并将下面的两行添加到 viewDidLoad(),则单元格高度会自动调整大小:
tableView.estimatedRowHeight = 144.0
tableView.rowHeight = UITableViewAutomaticDimension
所有这些都无需定义自定义单元格或使用自动布局或约束。 (事实上 ,我发现不可能向罐装原型单元添加约束。)
但是如果我将单元格样式更改为 "Subtitle," 以便单元格中有两个标签——代码中的 textLabel 和 detailTextLabel——那么单元格不会自动调整高度,即使在设置了两个标签之后(或两者之一)行号为 0 并使用不同的 estimatedRowHeight 值。
我是不是遗漏了什么,或者没有自定义单元格就无法自动调整单元格高度?
谢谢!
or is it not possible to automatically resize cell height without a custom cell?
是的,这是不可能的。原因就是你给出的原因。自动调整单元格高度功能取决于 内部约束。但是,正如您所说:
it's not possible to add constraints to a canned prototype cell.
但是请注意,您可以在不提供单元子类的情况下完成您想要的(尽管我个人喜欢提供一个)。您可以直接在原型单元 — 自定义原型单元中设计您的单元、约束和所有内容。