Wie kann ich die Schriftgröße und den Schriftnamen eines UILabels ermitteln?
104
Ich habe ein UILabel, für das ich mit Interface Builder eine Schriftgröße und einen Schriftnamen festgelegt habe. Jetzt muss ich die Werte von beiden in meinem ViewController lesen.
Verknüpfen Sie das Etikett mit diesem IBOutlet unter "Filialeigentümer" im Interface Builder. Wenn Sie ARC nicht verwenden, stellen Sie sicher, dass Sie es in -dealloc freigeben
Funktioniert nicht. Ich kann Text darin schreiben, aber fontName und pointSize sind null.
Tim
Meinen Sie damit, dass Sie den Text des Etiketts programmgesteuert ändern können, aber nicht auf fontName und pointSize zugreifen können? Ich habe die obige Antwort so bearbeitet, dass sie self.label anstelle von label enthält, da ich nicht erwähnt habe, dass eine Instanzvariable für label erstellt wird.
Ned
Stellen Sie außerdem sicher, dass Sie die Beschriftung in Interface Builder mit dem IBOutlet verknüpft haben, das Sie in File's Owner (dem View Controller) erstellt haben.
Ned
2
Ah, ich habe die Verbindung in IB mit dem Eigentümer der Datei vergessen.
Tim
29
Schnell:
var currentFontSize = button.titleLabel?.font.pointSize
Der Wert für die Punktgröße ist nicht die Schriftgröße, die in der Eigenschaft UIFont size verwendet wird. Angenommen, Sie setzen die Schriftgröße des Interface Builder auf 14 und drucken die pointSize aus. Sie erhalten nur 11.
Antworten:
Fügen Sie der .h-Datei Ihres View Controllers eine Eigenschaft hinzu:
Verknüpfen Sie das Etikett mit diesem IBOutlet unter "Filialeigentümer" im Interface Builder. Wenn Sie ARC nicht verwenden, stellen Sie sicher, dass Sie es in -dealloc freigeben
Um den Namen und die Größe der Schriftart zu erhalten, benötigen Sie lediglich
quelle
Schnell:
quelle
Der Wert für die Punktgröße ist nicht die Schriftgröße, die in der Eigenschaft UIFont size verwendet wird. Angenommen, Sie setzen die Schriftgröße des Interface Builder auf 14 und drucken die pointSize aus. Sie erhalten nur 11.
quelle
myLabel.font.pointSize
Sie müssen es an ein UILabel IBOutlet anhängen und dann label.font ...
quelle