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.

Wie kann ich das machen?


Diese Methode ist iOS7 veraltet, werfen Sie einen Blick auf diesen Artikel stackoverflow.com/questions/19128797/…
Maria

Antworten:


253

Fügen Sie der .h-Datei Ihres View Controllers eine Eigenschaft hinzu:

@property (nonatomic, retain) IBOutlet UILabel *label;

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

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

Um den Namen und die Größe der Schriftart zu erhalten, benötigen Sie lediglich

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
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

15

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.


Scheint jetzt zu arbeiten. Wenn ich die Schriftgröße eines Etiketts im Interface Builder / Storyboard Editor auf 17 myLabel.font.pointSize
setze

1

Sie müssen es an ein UILabel IBOutlet anhängen und dann label.font ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.