【发布时间】:2018-01-03 05:04:23
【问题描述】:
我有两个水平标签UIStackView。标签 1 是大字体(闹钟时间),标签 2 是小字体(上午/下午指示器),我想对齐每个标签的底部。
我将堆栈视图的对齐方式设置为底部,但它似乎只是对齐标签总区域的底部而不是实际文本。结果是较小字体的底部边缘比大标签的底部边缘高出大约 3 或 4 个像素。我该如何解决这个问题?
【问题讨论】:
标签: ios swift uilabel uistackview
我有两个水平标签UIStackView。标签 1 是大字体(闹钟时间),标签 2 是小字体(上午/下午指示器),我想对齐每个标签的底部。
我将堆栈视图的对齐方式设置为底部,但它似乎只是对齐标签总区域的底部而不是实际文本。结果是较小字体的底部边缘比大标签的底部边缘高出大约 3 或 4 个像素。我该如何解决这个问题?
【问题讨论】:
标签: ios swift uilabel uistackview
您需要检查 VERTICAL 堆栈中的 BaseLine Relative 属性
查看
对于水平 stackview
您需要将对齐方式从填充模式更改为First baseline 或Last baseline
如果你想了解基线这里是一个很好的解释https://stackoverflow.com/a/24541992/4601900
希望对你有帮助
【讨论】:
在UIStackView,
bottom alignment:对齐组件的底部,即UILabel、UITextField等的框。
baseline aligmnent:要对齐文本的底部,您需要使用基线。
要更清楚地了解底部和基线,请参阅:https://stackoverflow.com/a/24541992/5716829
UIStackView 提供了 2 个选项来对齐基线,
您可以在这里找到对这两个选项的一个很好的解释:https://stackoverflow.com/a/33934323/5716829
现在,由于您的 UILabels 仅包含单行文本,因此第一个和最后一个基线的工作方式相同。
如果您有多行标签,并且想要对齐其文本的底部,请使用 Last Baseline。
这是视图层次结构的截图:
【讨论】:
【讨论】: