¿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?


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;

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

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.


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 ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.