我用以下代码创建了一个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
}
我真的不明白为什么但标签不是垂直居中的:
我是否必须做任何特定的事情才能使它居中?
问题是adjustsFontSizeToFitWidth = true
缩小了字体大小,但它没有自动调整lineHeight
。它仍然是原始字体大小是50
。
默认情况下,文本与其基线对齐。你可以用baselineAdjustment
属性调整它。
在您的情况下,您应该将其设置为UIBaselineAdjustment.alignCenters
。
valueLabel.baselineAdjustment = .alignCenters
感谢@rintaro,它终于有效了。
对我的情况还有一件事,它没有用,因为我正在设置ByWordWrapping
。我不得不把lineBreakMode
设为ByClipping
。
Swift 4.2
valueLabel.textAlignment = .center