自定义 UITableViewCell - 动态调整 UILabel 垂直对齐方式
Custom UITableViewCell - adjust UILabel vertical alignment dynamically
我有一个自定义 table 单元格。它有两个标签(title
和 description
),一个在另一个下面。
我现在拥有的是 title
标签 top = topMargin
。和 description
标签 top = title
标签 bottom + 10
.
但有些情况下,会没有描述。在这种情况下,我希望 title
标签在单元格内垂直居中。这可能吗?我必须设置哪些限制条件?
A UIStackView
可以轻松地做你想做的事。
- 创建原型单元格
- 添加两个标签
- 将它们嵌入到堆栈视图中
- 将堆栈视图的属性设置为:
- 轴:垂直
- 对齐:填充
- 分布:平均填充
- 间距:10
- 将堆栈视图 Top/Leading/Trailing/Bottom 限制为
0
到单元格内容视图的默认边距(或设置您自己的 "padding")
- 设置固定行高 - 使用默认标签 + 10 磅间距 + 顶部和底部边距,您可能至少需要
67
- 将标签连接到
IBOutlet
s
当您在 cellForRowAt indexPath:
中设置标签的文本时,将描述标签的 .isHidden
属性 设置为 true
如果 有 描述,或者 false
如果 没有 。
结果(为清晰起见,使用背景颜色):
没有背景色的结果:
我有一个自定义 table 单元格。它有两个标签(title
和 description
),一个在另一个下面。
我现在拥有的是 title
标签 top = topMargin
。和 description
标签 top = title
标签 bottom + 10
.
但有些情况下,会没有描述。在这种情况下,我希望 title
标签在单元格内垂直居中。这可能吗?我必须设置哪些限制条件?
A UIStackView
可以轻松地做你想做的事。
- 创建原型单元格
- 添加两个标签
- 将它们嵌入到堆栈视图中
- 将堆栈视图的属性设置为:
- 轴:垂直
- 对齐:填充
- 分布:平均填充
- 间距:10
- 将堆栈视图 Top/Leading/Trailing/Bottom 限制为
0
到单元格内容视图的默认边距(或设置您自己的 "padding") - 设置固定行高 - 使用默认标签 + 10 磅间距 + 顶部和底部边距,您可能至少需要
67
- 将标签连接到
IBOutlet
s
当您在 cellForRowAt indexPath:
中设置标签的文本时,将描述标签的 .isHidden
属性 设置为 true
如果 有 描述,或者 false
如果 没有 。
结果(为清晰起见,使用背景颜色):
没有背景色的结果: