Ich habe programmatisch eine Beschriftung erstellt, die ich die adjustToFitWidth auf true gesetzt habe. Jetzt möchte ich seine Schriftart ändern, aber ich kann das nicht tun, ohne die Schriftgröße der Beschriftung konstant zu machen. Weiß jemand wie ich nur die Schriftart und nicht die Schriftgröße eines UILabel in Swift ändern kann?Wie ändere ich die Schriftart eines UILabel in swift, ohne die Schriftgröße zu ändern?
13
A
Antwort
30
Warum nicht die Schriftgröße erhalten und eine neue Schriftart mit diesem Wert angeben?
let fontSize = self.label.font.pointSize;
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize)
4
Sie können es wie folgt tun:
label.font = UIFont(name: "Arial", size: label.font.pointSize)
Dies wird die gleiche Schriftgröße verwenden, „Arial“ kann sein, was Familie, die Sie wählen möchten.
1
Eine verbesserte Antwort.
UILabel Subclassing: 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 jedes UILabel der Schriftart im gesamten Projekt nicht ändern müssen.
Nur weil Sie die Schriftgröße nicht ändern, bedeutet dies nicht unbedingt, dass zwei verschiedene Schriftarten mit demselben Text und derselben Größe den gleichen Platz einnehmen. – nhgrif