UILabel tamaño de fuente?

87

Parece que no puedo modificar el tamaño de fuente de un UILabel con el siguiente código:

itemTitle.font = [UIFont systemFontOfSize:25];

A medida que aumento el número 25 a algo mayor, parece que solo agrega un margen superior a la etiqueta, lo que, en consecuencia, empuja el texto hacia abajo tanto, de modo que el texto se corta en la parte inferior o se desborda por completo.

tengo otro UILabel en otro lugar con systemFontOfSize 25, y es mucho más pequeño que el texto itemTitle. ¿Que esta pasando? ¿No se supone que 25 es un valor absoluto?

Estoy tan confundido sobre cómo cambiar programáticamente el tamaño de fuente de los uilabels.

Juan
fuente

Respuestas:

56

Compruebe que sus etiquetas no estén configuradas para cambiar de tamaño automáticamente. En IB, se llama "Autoencogimiento" y está justo al lado de la configuración de fuente. Programáticamente, se llama adjustsFontSizeToFitWidth.

Rob Napier
fuente
176

He modificado el UILabel con el siguiente código:

label.font=[label.font fontWithSize:25];

Pruebe esto y vea si está funcionando en su caso o no.

xtreme
fuente
4
label.font = label.font.fontWithSize(25)para Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz
35
[label setFont:[UIFont systemFontOfSize:9]];

esto funciona para mi.

Juan Pablo Manoza
fuente
17

Para Swift 3.1 y Swift 4 , si solo desea cambiar el tamaño de fuente de una etiqueta:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Kevin ABRIOUX
fuente
12

** Puede establecer el tamaño de fuente con estas propiedades **

timedisplayLabel= [[UILabel alloc]initWithFrame:CGRectMake(70, 194, 180, 60)];

[timedisplayLabel setTextAlignment:NSTextAlignmentLeft];

[timedisplayLabel setBackgroundColor:[UIColor clearColor]];

[timedisplayLabel setAdjustsFontSizeToFitWidth:YES];

[timedisplayLabel setTextColor:[UIColor blackColor]];

[timedisplayLabel setUserInteractionEnabled:NO];

[timedisplayLabel setFont:[UIFont fontWithName:@"digital-7" size:60]];

timedisplayLabel.layer.shadowColor =[[UIColor whiteColor ]CGColor ];

timedisplayLabel.layer.shadowOffset=(CGSizeMake(0, 0));

timedisplayLabel.layer.shadowOpacity=1;

timedisplayLabel.layer.shadowRadius=3.0;

timedisplayLabel.layer.masksToBounds=NO;

timedisplayLabel.shadowColor=[UIColor darkGrayColor];

timedisplayLabel.shadowOffset=CGSizeMake(0, 2);
kapil
fuente
5

método muy simple pero efectivo para ajustar el tamaño del texto de la etiqueta de manera programada: -

label.font=[UIFont fontWithName:@"Chalkduster" size:36];

:-)

Madhur Sodhi
fuente
5

Esto funcionó para mí en

Swift 3

label.font = label.font.fontWithSize(40.0)

Rápido 4

label.font = label.font.withSize(40.0)
Krunal
fuente
1

Esto funcionó para mí:

sequencerPlayLabel.font = [UIFont fontWithName:kTypeFont size:kTypeFontSize];

-Rico

usuario2887097
fuente
1

Las respuestas anteriores ayudaron mucho.

Aquí está la versión Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Christopher Wade Cantley
fuente
1

En C # estas formas pueden resolver el problema, en UIkit estos métodos están disponibles.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);
Shanu Singh
fuente
-1

Intente cambiar la altura y el ancho del tamaño del marco de la etiqueta para que el texto no se corte.

 [label setframe:CGRect(x,y,widht,height)];
vishiphone
fuente