自定义 UITableViewCell - 动态调整 UILabel 垂直对齐方式

Custom UITableViewCell - adjust UILabel vertical alignment dynamically

我有一个自定义 table 单元格。它有两个标签(titledescription),一个在另一个下面。

我现在拥有的是 title 标签 top = topMargin。和 description 标签 top = title 标签 bottom + 10.

但有些情况下,会没有描述。在这种情况下,我希望 title 标签在单元格内垂直居中。这可能吗?我必须设置哪些限制条件?

A UIStackView 可以轻松地做你想做的事。

  • 创建原型单元格
  • 添加两个标签
  • 将它们嵌入到堆栈视图中
  • 将堆栈视图的属性设置为:
    • 轴:垂直
    • 对齐:填充
    • 分布:平均填充
    • 间距:10
  • 将堆栈视图 Top/Leading/Trailing/Bottom 限制为 0 到单元格内容视图的默认边距(或设置您自己的 "padding")
  • 设置固定行高 - 使用默认标签 + 10 磅间距 + 顶部和底部边距,您可能至少需要 67
  • 将标签连接到 IBOutlets

当您在 cellForRowAt indexPath: 中设置标签的文本时,将描述标签的 .isHidden 属性 设置为 true 如果 描述,或者 false 如果 没有

结果(为清晰起见,使用背景颜色):

没有背景色的结果: