我使用以下代码创建了一个Label:
func setupValueLabel() {
valueLabel.numberOfLines = 1
valueLabel.font = UIFont(name: "Avenir-Black", size: 50)
valueLabel.adjustsFontSizeToFitWidth = true
valueLabel.clipsToBounds = true
valueLabel.backgroundColor = UIColor.greenColor()
valueLabel.textColor = valuesColor
valueLabel.textAlignment = NSTextAlignment.Center
}
我不太明白为什么但标签不是垂直居中的:
我是否必须做任何特定的事情,以便它可以居中?
答案 0 :(得分:87)
问题是字体大小缩小adjustsFontSizeToFitWidth = true
,但它不会自动调整lineHeight
。它仍然是原始字体大小50
。
默认情况下,文本与其基线对齐。您可以使用baselineAdjustment
属性进行调整。
在您的情况下,您应将其设置为UIBaselineAdjustment.alignCenters
。
valueLabel.baselineAdjustment = .alignCenters
答案 1 :(得分:14)
感谢@rintaro,它终于有效了。
对我的情况还有一件事,因为我正在设置ByWordWrapping
,所以它没有用。我必须将lineBreakMode
设为ByClipping
。
答案 2 :(得分:0)
Swift 4.2
valueLabel.textAlignment = .center