Ik heb een label gemaakt met de volgende code:
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
}
Ik begrijp niet echt waarom, maar het label is niet verticaal gecentreerd:
Moet ik iets specifieks doen zodat het gecentreerd kan worden?
Antwoord 1, autoriteit 100%
Het probleem is dat de lettergrootte wordt verkleind met adjustsFontSizeToFitWidth = true
, maar de lineHeight
wordt niet automatisch aangepast. Het blijft voor de originele lettergrootte die 50
is.
Standaard wordt de tekst uitgelijnd op de basislijn. je kunt het aanpassen met baselineAdjustment
eigenschap.
In uw geval moet u dit instellen op UIBaselineAdjustment.alignCenters
.
valueLabel.baselineAdjustment = .alignCenters
Antwoord 2, autoriteit 16%
Dankzij @rintaro werkt het eindelijk.
Nog één ding voor mijn geval, het werkte niet omdat ik ByWordWrapping
instelde. Ik moest lineBreakMode
instellen als ByClipping
.