91

I can't seem to modify the font size of a UILabel with the following code:

itemTitle.font = [UIFont systemFontOfSize:25];

As i increase the number 25 to something greater, it seems to only add a top margin to the label, which consequently pushes the text down so much, so that the text gets cut off at the bottom or completely overflows.

i have another UILabel elsewhere with systemFontOfSize 25, and it's much smaller than the itemTitle text. What's going on? Isn't 25 supposed to be an absolute value?

i am so confused on how to programmatically change font size of uilabels.

Krunal
  • 77,632
  • 48
  • 245
  • 261
John
  • 32,403
  • 80
  • 251
  • 422

11 Answers11

180

I have modified the UILabel by following code:

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

Try this and see whether is it working in your case or not???

scottm
  • 27,829
  • 22
  • 107
  • 159
xtreme
  • 1,901
  • 2
  • 11
  • 8
56

Check that your labels aren't set to automatically resize. In IB, it's called "Autoshrink" and is right beside the font setting. Programmatically, it's called adjustsFontSizeToFitWidth.

Rob Napier
  • 286,113
  • 34
  • 456
  • 610
35
[label setFont:[UIFont systemFontOfSize:9]];

this works for me.

John Paul Manoza
  • 1,735
  • 25
  • 22
23

For Swift 3.1, Swift 4 and Swift 5, if you only want change the font size for a label :

let myLabel : UILabel = ...
myLabel.font = myLabel.font.withSize(25)
Kevin ABRIOUX
  • 16,507
  • 12
  • 93
  • 99
12

**You can set font size by these properties **

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);
Adrian P
  • 6,479
  • 4
  • 38
  • 55
kapil
  • 671
  • 6
  • 9
7

This worked for me in

Swift 3

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

Swift 4

label.font = label.font.withSize(40.0)
Krunal
  • 77,632
  • 48
  • 245
  • 261
5

very simple, yet effective method to adjust the size of label text progmatically :-

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

:-)

kleopatra
  • 51,061
  • 28
  • 99
  • 211
Madhur Sodhi
  • 121
  • 1
  • 9
1

This worked for me:

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

-rich

user2887097
  • 309
  • 4
  • 12
1

Answers above helped greatly.

Here is the Swift version.

@IBOutlet weak var priceLabel: UILabel!

*.... lines of code later*

self.priceLabel.font = self.priceLabel.font.fontWithSize(22)
Christopher Wade Cantley
  • 7,122
  • 5
  • 35
  • 48
1

In C# These ways you can Solve the problem, In UIkit these methods are available.

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

Try to change your label frame size height and width so your text not cut.

 [label setframe:CGRect(x,y,widht,height)];
scottm
  • 27,829
  • 22
  • 107
  • 159
vishiphone
  • 750
  • 7
  • 14