Come posso ottenere la dimensione del carattere e il nome del carattere di un'etichetta UIL?


105

Ho un UILabel che ho impostato una dimensione del carattere e un nome del carattere con Interface Builder. Ora devo leggere i valori di entrambi nel mio ViewController.

Come posso fare questo?


Questo metodo è stato deprecato iOS7, dai un'occhiata a questo articolo stackoverflow.com/questions/19128797/…
— Maria

Risposte:


254

Aggiungi una proprietà al file .h del controller di visualizzazione:

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

Collega l'etichetta a questo IBOutlet nelle prese "File's Owner" in Interface Builder. Se non usi ARC, assicurati di rilasciarlo in -dealloc

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

Quindi per ottenere il nome e la dimensione del carattere tutto ciò di cui hai bisogno è

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

3
Non funziona. Posso scrivere del testo, ma fontName e pointSize sono nulli.
— Tim

Vuoi dire che puoi modificare a livello di codice il testo dell'etichetta, ma non puoi accedere a fontName e pointSize? Ho modificato la risposta sopra per includere self.label, anziché solo label, poiché non ho menzionato la creazione di una variabile di istanza per label.
— Ned

Inoltre, assicurati di aver collegato l'etichetta in Interface Builder con l'IBOutlet che hai creato in File's Owner (il controller di visualizzazione).
— Ned

2
Ah, ho dimenticato la connessione in IB con il proprietario del file.
— Tim

29

Swift:

var currentFontSize = button.titleLabel?.font.pointSize

15

Il valore della dimensione dei punti non è la dimensione del carattere utilizzata nella proprietà della dimensione UIFont. Supponiamo che se imposti la dimensione del carattere del generatore di interfacce su 14 e fai una stampa del pointSize, otterrai solo 11.


Sembra funzionare adesso. Se imposto la dimensione del carattere di un'etichetta nel generatore di interfacce / editor di storyboard su 17 ... myLabel.font.pointSizerestituisce 17.
— Derek Soike

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.