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

Ios 自定义UITableViewCell-动态调整UILabel垂直对齐,ios,ios-autolayout,Ios,Ios Autolayout,我有一个定制的表格单元格。它有两个标签(标题和说明),一个在另一个下面 我现在拥有的是,titlelabeltop=topMargin。和descriptionlabeltop=titlelabelbottom+10 但在某些情况下,将没有描述。在这种情况下,我希望标题标签在单元格内垂直居中。这可能吗?我必须设置哪些约束条件?AUIStackView使您可以轻松地执行所需操作 创建一个原型单元 添加两个标签 将它们嵌入堆栈视图中 将堆栈视图的属性设置为: 轴:垂直 对齐:填充 分布:均匀填充

我有一个定制的表格单元格。它有两个标签(
标题
说明
),一个在另一个下面

我现在拥有的是,
title
label
top=topMargin
。和
description
label
top=title
label
bottom+10


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

A
UIStackView
使您可以轻松地执行所需操作

  • 创建一个原型单元
  • 添加两个标签
  • 将它们嵌入堆栈视图中
  • 将堆栈视图的属性设置为:
    • 轴:垂直
    • 对齐:填充
    • 分布:均匀填充
    • 间距:10
  • 将堆栈视图顶部/前导/尾随/底部的
    0
    约束为单元格内容视图的默认边距(或设置您自己的“填充”)
  • 设置固定行高-使用默认标签+10点间距+上下页边距,您可能至少需要
    67
  • 将标签连接到
    IBOutlet
    s
在indexPath:中将
CellForRow中的标签文本设置为
时,如果描述标签有描述,则将其
.isHidden
属性设置为
true
,如果没有,则将其设置为
false

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

不带背景色的结果:


您的标签是单行的,行的高度是固定的吗?或者标签是多行的,所以行高需要是动态的?编辑了我的答案。@skt您可以使用stackview来管理这种类型的标签condition@DonMag标签将始终为单行,行的高度固定。