92

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.

11 Answers 11

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???

Sign up to request clarification or add additional context in comments.

2 Comments

label.font = label.font.fontWithSize(25) for Swift
Swift 3 label.font = label.font.withSize(25)
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.

Comments

35
[label setFont:[UIFont systemFontOfSize:9]]; 

this works for me.

Comments

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) 

Comments

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

Comments

7

This worked for me in

Swift 3

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

Swift 4

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

Comments

5

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

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

:-)

Comments

1

This worked for me:

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

-rich

Comments

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) 

Comments

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

Comments

-1

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

 [label setframe:CGRect(x,y,widht,height)]; 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.