垂直对齐具有不同字体大小的标签,Swift

use*_*776 1 uilabel ios swift

我想垂直对齐不同字体大小的标签,以便它们看起来像坐在一个共同的基线上.

在这种情况下,我在stackview中嵌入了三个标签,如下图所示.数字30似乎明显偏离基线,而文本"In"和"MINUTES"似乎也偏移,但不显着.我怎样才能让所有三个坐在同一个基线上?

在此输入图像描述

我正在以编程方式创建标签和堆栈视图,如下所示:

var timeStackView           : UIStackView!
var timeIndication          : UILabel!
var time                    : UILabel!
var unitsOrTimeZone         : UILabel!

timeStackView = UIStackView()
timeStackView.addArrangedSubview(timeIndication)
timeStackView.addArrangedSubview(time)
timeStackView.addArrangedSubview(unitsOrTimeZone)
timeStackView.alignment = .bottom      // bottom alignment
timeStackView.axis = .horizontal
timeStackView.distribution = .equalSpacing
timeStackView.spacing = 10.0
Run Code Online (Sandbox Code Playgroud)

所有三个标签都以与下图所示类似的方式创建,但具有不同的文本:

timeIndication                      =   UILabel()
timeIndication.textAlignment        =   .center
timeIndication.text                 =   "In"
timeIndication.font                 =   timeIndication.font.withSize(14)
timeIndication.baselineAdjustment   = .alignBaselines // baselineAdjustment
Run Code Online (Sandbox Code Playgroud)

我曾尝试timeStackView.alignment = .bottomtimeIndication.baselineAdjustment = .alignBaselines,但他们似乎并不管用.

Ole*_*ann 7

我没有尝试过,但根据UIStackView文档,您应该将堆栈视图的对齐方式设置为.lastBaseline或者.firstBaseline,具体取决于您希望如何处理多行标签.