¿Cómo puedo obtener el tamaño de fuente y el nombre de fuente de una UILabel?

105

Tengo una UILabel en la que configuré un tamaño de fuente y un nombre de fuente con Interface Builder. Ahora tengo que leer los valores de ambos en mi ViewController.

¿Cómo puedo hacer esto?

Tim
fuente
Este método ha quedado obsoleto en iOS7, eche un vistazo a este artículo stackoverflow.com/questions/19128797/…
Maria

Respuestas:

254

Agregue una propiedad al archivo .h de su controlador de vista:

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

Vincula la etiqueta a este IBOutlet en las salidas "Propietario del archivo" en Interface Builder. Si no usa ARC, asegúrese de liberarlo en -dealloc

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

Luego, para obtener el nombre y el tamaño de la fuente, todo lo que necesita es

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;
Ned
fuente
3
No funciona. Puedo escribir texto en él, pero fontName y pointSize son nulos.
Tim
¿Quiere decir que puede cambiar mediante programación el texto de la etiqueta, pero no puede acceder a fontName y pointSize? Edité la respuesta anterior para incluir self.label, en lugar de solo label, ya que no mencioné la creación de una variable de instancia para label.
Ned
Además, asegúrese de haber conectado la etiqueta en Interface Builder con el IBOutlet que creó en File's Owner (el controlador de vista).
Ned
2
Ah, olvidé la conexión en IB con el propietario del archivo.
Tim
29

Rápido:

var currentFontSize = button.titleLabel?.font.pointSize
Esqarrouth
fuente
15

El valor de tamaño de puntos no es el tamaño de fuente utilizado en la propiedad de tamaño de UIFont. Digamos que si establece el tamaño de fuente del generador de interfaz en 14 y hace una impresión de pointSize, obtendrá solo 11.

ctd
fuente
Parece estar funcionando ahora. Si configuro el tamaño de fuente de una etiqueta en el generador de interfaz / editor de guión gráfico en 17 ... myLabel.font.pointSizedevuelve 17.
Derek Soike
1

tienes que adjuntarlo a un UILabel IBOutlet, y luego, label.font ...

Guy Ephraim
fuente