2015-06-27 17 views
13

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?

+3

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

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.

Verwandte Themen