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

时间:2018-07-24 06:34:10

标签: ios ios-autolayout

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

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

但是在某些情况下,将没有描述。在这种情况下,我希望title标签在单元格内垂直居中。这可能吗?我必须设置哪些约束?

1 个答案:

答案 0 :(得分:1)

UIStackView使您轻松完成自己想做的事情。

  • 创建原型单元格
  • 添加两个标签
  • 将它们嵌入堆栈视图
  • 将堆栈视图的属性设置为:
    • 轴:垂直
    • 对齐方式:填充
    • 分布:平均填充
    • 间距:10
  • 将堆栈视图的顶部/前导/尾随/底部约束为0到单元格内容视图的默认边距(或设置自己的“填充”)
  • 设置固定的行高-使用默认标签+ 10点间距+上下边距,您可能至少需要67
  • 将标签连接到IBOutlet s

cellForRowAt indexPath:中设置标签文本时,如果描述标签,则将描述标签的.isHidden属性设置为true,或者将{ {1}}(如果不是)。

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

没有背景色的结果: