Tekst niet verticaal gecentreerd in UILabel

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:
Label niet 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 lineHeightwordt niet automatisch aangepast. Het blijft voor de originele lettergrootte die 50is.

Standaard wordt de tekst uitgelijnd op de basislijn. je kunt het aanpassen met baselineAdjustmenteigenschap.

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 ByWordWrappinginstelde. Ik moest lineBreakModeinstellen als ByClipping.

Other episodes