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.

John
la source

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.

Rob Napier
la source
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 ???

xtrême
la source
4
label.font = label.font.fontWithSize(25)pour Swift
Tom Howard
Swift 3label.font = label.font.withSize(25)
Marcio Klepacz
35
[label setFont:[UIFont systemFontOfSize:9]];

cela fonctionne pour moi.

John Paul Manoza
la source
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)
Kevin ABRIOUX
la source
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);
kapil
la source
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];

:-)

Madhur Sodhi
la source
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)
Krunal
la source
1

Cela a fonctionné pour moi:

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

-riches

user2887097
la source
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)
Christopher Wade Cantley
la source
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);
Shanu Singh
la source
-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)];
vishiphone
la source