动态 tableViewCell 高度

Dynamic tableViewCell height

我有一个 tableViewCell,里面有一个标签,可能有多行高。我已将标签的 Lines 属性 设置为 0。但是,当我将标签的文本设为多行时,文本会被截断。以下是我设置故事板的方式:

有人知道我是如何让 table 的单元格足够高以包含标签的吗?

您缺少从标签到 table 视图单元格的底部约束(据我所知)。为了使自动布局知道单元格的高度必须有多大,您需要提供这些约束。

此外,不要忘记将 estimatedRowHeight 提供给 table 视图。如果未给出该值,自动调整单元格大小将不起作用。

设置动态单元格高度程序

  1. 从顶部和底部固定标签。请参考以下截图

  1. 从 xcode 的 属性 inspector 开始,将标签的 numbers of line 设置为 0,也可以通过代码完成,请参考以下屏幕射击

  1. 实现下面提到的 table 视图的委托

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
    }
    
    func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50 // also UITableViewAutomaticDimension can be used
    }