Dimensione carattere UILabel?


87

Non riesco a modificare la dimensione del carattere di un'etichetta UIL con il seguente codice:

itemTitle.font = [UIFont systemFontOfSize:25];

Man mano che aumento il numero 25 a qualcosa di più grande, sembra aggiungere solo un margine superiore all'etichetta, che di conseguenza spinge il testo così tanto verso il basso, in modo che il testo venga tagliato in fondo o trabocchi completamente.

ho un altro UILabel altrove con systemFontOfSize 25, ed è molto più piccolo del testo itemTitle. Cosa sta succedendo? 25 non dovrebbe essere un valore assoluto?

Sono così confuso su come modificare a livello di codice la dimensione del carattere di uilabels.

Risposte:


56

Verifica che le tue etichette non siano impostate per il ridimensionamento automatico. In IB, si chiama "Autoshrink" ed è proprio accanto all'impostazione del carattere. A livello di codice, si chiama adjustsFontSizeToFitWidth.


176

Ho modificato l'UILabel seguendo il codice:

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

Prova questo e vedi se funziona nel tuo caso o no ???


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

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


17

Per Swift 3.1 e Swift 4 , se desideri modificare solo la dimensione del carattere di un'etichetta:

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

12

** Puoi impostare la dimensione del carattere in base a queste proprietà **

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

metodo molto semplice ma efficace per regolare la dimensione del testo dell'etichetta in modo programmatico: -

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

:-)


5

Questo ha funzionato per me in

Swift 3

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

Swift 4

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

1

Questo ha funzionato per me:

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

-ricco


1

Le risposte sopra sono state di grande aiuto.

Ecco la versione Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

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

1

In C # questi modi puoi risolvere il problema, In UIkit questi metodi sono disponibili.

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

-1

Prova a modificare l'altezza e la larghezza della cornice dell'etichetta in modo che il testo non venga tagliato.

 [label setframe:CGRect(x,y,widht,height)];
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.