Taille de la police UILabel?


87

Je n'arrive pas à modifier la taille de la police d'un UILabel avec le code suivant:

itemTitle.font = [UIFont systemFontOfSize:25];

Lorsque j'augmente le nombre 25 à quelque chose de plus grand, il semble n'ajouter qu'une marge supérieure à l'étiquette, ce qui pousse par conséquent tellement le texte vers le bas, de sorte que le texte est coupé en bas ou déborde complètement.

J'ai un autre UILabel ailleurs avec systemFontOfSize 25, et il est beaucoup plus petit que le texte itemTitle. Que se passe-t-il? N'est-ce pas censé être une valeur absolue?

Je suis tellement confus sur la façon de changer par programme la taille de la police des uilabels.

Réponses:


56

Vérifiez que vos étiquettes ne sont pas configurées pour se redimensionner automatiquement. Dans IB, il s'appelle "Autoshrink" et se trouve juste à côté du paramètre de police. Par programme, il est appelé adjustsFontSizeToFitWidth.


176

J'ai modifié le UILabel en suivant le code:

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

Essayez ceci et voyez si cela fonctionne dans votre cas ou non ???


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

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


17

Pour Swift 3.1 et Swift 4 , si vous souhaitez uniquement modifier la taille de police d'une étiquette:

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

12

** Vous pouvez définir la taille de la police par ces propriétés **

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éthode très simple, mais efficace pour ajuster la taille du texte de l'étiquette de manière progressive: -

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

:-)


5

Cela a fonctionné pour moi dans

Swift 3

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

Swift 4

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

1

Cela a fonctionné pour moi:

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

-riches


1

Les réponses ci-dessus ont grandement aidé.

Voici la version Swift.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

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

1

En C #, ces méthodes vous permettent de résoudre le problème.Dans UIkit, ces méthodes sont disponibles.

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

-1

Essayez de changer la hauteur et la largeur de la taille du cadre de votre étiquette afin que votre texte ne soit pas coupé.

 [label setframe:CGRect(x,y,widht,height)];
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.