我想垂直对齐不同字体大小的标签,这样它们就会出现在共同的基线上。
在这种情况下,我在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
所有三个标签的创建方式与下图所示类似,但文字不同:
timeIndication = UILabel()
timeIndication.textAlignment = .center
timeIndication.text = "In"
timeIndication.font = timeIndication.font.withSize(14)
timeIndication.baselineAdjustment = .alignBaselines // baselineAdjustment
我尝试了timeStackView.alignment = .bottom
和timeIndication.baselineAdjustment = .alignBaselines
,但他们似乎无法工作。
答案 0 :(得分:5)
我还没有尝试过,但是根据UIStackView
文档,你应该将堆栈视图的对齐方式设置为.lastBaseline
或.firstBaseline
,具体取决于你想要多线的方式要处理的标签。