108
votes

I have a UILabel which I set a font size and a font name with Interface Builder. Now I have to read the values of both in my ViewController.

How can I do this?

4
This method has been deprecated iOS7, take a look at this article stackoverflow.com/questions/19128797/…Maria

4 Answers

262
votes

Add a property to your view controller's .h file:

@property (nonatomic, retain) IBOutlet UILabel *label;

Link the label to this IBOutlet under "File's Owner" outlets in Interface Builder. If not using ARC, make sure you release it in -dealloc

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

Then to get the font name and size all you need is

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;
32
votes

Swift:

var currentFontSize = button.titleLabel?.font.pointSize
16
votes

Pointsize value is not the Font Size of used in UIFont size property. Say if you go set interface builder font size to 14 and do a print of the pointSize you'll get only 11.

2
votes

you have to attach it to a UILabel IBOutlet, and then, label.font...