Tamanho da fonte do UILabel?


87

Não consigo modificar o tamanho da fonte de um UILabel com o seguinte código:

itemTitle.font = [UIFont systemFontOfSize:25];

Conforme eu aumento o número 25 para algo maior, parece que apenas adiciona uma margem superior ao rótulo, o que, consequentemente, empurra o texto tanto para baixo, que o texto fica cortado na parte inferior ou transborda completamente.

eu tenho outro UILabel em outro lugar com systemFontOfSize 25, e é muito menor que o texto itemTitle. O que está acontecendo? 25 não deveria ser um valor absoluto?

Estou tão confuso sobre como alterar programaticamente o tamanho da fonte dos uilabels.

Respostas:


56

Verifique se seus rótulos não estão configurados para redimensionar automaticamente. No IB, é chamado de "Autoshrink" e fica ao lado da configuração da fonte. É chamado de forma programática adjustsFontSizeToFitWidth.


176

Eu modifiquei o UILabel seguindo o código:

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

Experimente e veja se está funcionando no seu caso ou não ???


4
label.font = label.font.fontWithSize(25)para Swift
Tom Howard

Swift 3label.font = label.font.withSize(25)
Marcio Klepacz


17

Para Swift 3.1 e Swift 4 , se você quiser apenas alterar o tamanho da fonte de um rótulo:

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)

12

** Você pode definir o tamanho da fonte por essas propriedades **

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);

5

método muito simples, mas eficaz para ajustar o tamanho do texto do rótulo de forma programática: -

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

:-)


5

Isso funcionou para mim em

Swift 3

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

Swift 4

label.font = label.font.withSize(40.0)

1

Isso funcionou para mim:

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

-rico


1

As respostas acima ajudaram muito.

Aqui está a versão Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)

1

Em C # Estas maneiras de resolver o problema. No UIkit, esses métodos estão disponíveis.

Label.Font = Label.Font.WithSize(5.0f);
       Or
Label.Font = UIFont.FromName("Copperplate", 10.0f);  
       Or
Label.Font = UIFont.WithSize(5.0f);

-1

Tente alterar a altura e a largura do tamanho da moldura da etiqueta para que o texto não seja cortado.

 [label setframe:CGRect(x,y,widht,height)];
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.