it-swarm.com.de

Wie ändere ich die Schriftart eines UILabels in Swift, ohne die Schriftgröße zu ändern?

Ich habe programmatisch ein Label erstellt, für das ich die Einstellung adjustsToFitWidth auf true gesetzt habe. Jetzt möchte ich die Schriftart ändern, aber ich kann das nicht, ohne die Schriftgröße der Beschriftung konstant zu machen. Weiß jemand, wie ich nur die Schrift und nicht die Schriftgröße eines UILabels schnell ändern kann?

17
Matt Spoon

Warum nicht die Schriftgröße ermitteln und mit diesem Wert eine neue Schrift angeben?

let fontSize = self.label.font.pointSize;
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize)
35
Aeradriel

Sie können es so machen:

label.font = UIFont(name: "Arial", size: label.font.pointSize)

Dies wird die gleiche Schriftgröße verwenden. "Arial" kann für jede Familie stehen, die Sie auswählen möchten.

4
iYoung

Eine verbesserte Antwort.

UILabel-Unterklassifizierung: Fügen Sie eine leere Swift-Datei hinzu und benennen Sie sie. z.B. EZLabel. Fügen Sie den folgenden Code hinzu.

import Foundation
import UIKit

class EZLabel: UILabel {

    override func awakeFromNib() {
        super.awakeFromNib()
        changeFontName()
    }

    func changeFontName()
    {
        self.font = UIFont(name: "Roboto", size: self.font.pointSize)
    }
}

Der Vorteil ist, dass Sie bei Bedarf nicht die Schriftart jedes UILabels im gesamten Projekt ändern müssen.

2
A.G
extension UILabel {
    override open func awakeFromNib() {
        super.awakeFromNib()
        changeFontName()
    }

    func changeFontName()
    {
        self.font = UIFont(name: "YOUR_FONT_NAME", size: self.font.pointSize)
    }
}

/* Do this also for buttons and any uiviews */
1
Ahmed Samir