如何在水平UIStackView中对齐两个标签的底部?

时间:2018-01-03 05:04:24

标签: ios swift uilabel uistackview

我在水平UIStackView中有两个标签。标签1是一个大字体(闹钟时间),标签2是一个小字体(AM / PM指示器),我想对齐每个标签的底部。

enter image description here

我将堆栈视图的对齐方式设置为Bottom,但似乎只是对齐标签的底部'总面积而不是实际文本。结果是较小字体的底部边缘在大标签的底部边缘上方约3或4个像素。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您需要在垂直堆栈中检查BaseLine Relative属性 图

enter image description here

水平 stackview

您需要将对齐方式从填充模式更改为First baselineLast baseline

enter image description here

如果你想了解基线,这里有一个很好的解释https://stackoverflow.com/a/24541992/4601900

希望它对你有所帮助

答案 1 :(得分:1)

将stackView的对齐方式更改为" Last BaseLine ",以实现相同目标。

enter image description here

答案 2 :(得分:0)

UIStackView

bottom alignment :它对齐组件的底部,即UILabelUITextField等的框。

baseline aligmnent :要对齐文本的底部,您需要使用基线。

有关底部和基线的更清晰,请参阅:https://stackoverflow.com/a/24541992/5716829

UIStackView提供2个选项以对齐基线,

  1. 第一个基线
  2. 上次基线
  3. 您可以在这里找到对这两个选项的一个很好的解释:https://stackoverflow.com/a/33934323/5716829

    现在,由于您的UILabels只包含单行文字,因此第一个和最后一个基线的工作方式相同。

    如果您有多行标签,并且想要将其文字的底部对齐,请使用Last Baseline

    以下是视图层次结构的屏幕截图:

    enter image description here