How do you set the font size on a UIBarButtonItem?

Jim picture Jim · Apr 27, 2010 · Viewed 27.9k times · Source

I can't find a way to set the font size of the title in a custom UIBarButtonItem. The only way I can think of getting around this is to set it as an image which I would like to avoid. Any other suggestions?

Answer

Mateus picture Mateus · Jul 7, 2012

In a easy way, simply:

Objective-C:

NSUInteger fontSize = 20;
UIFont *font = [UIFont boldSystemFontOfSize:fontSize];
NSDictionary *attributes = @{NSFontAttributeName: font};

UIBarButtonItem *item = [[UIBarButtonItem alloc] init];

[item setTitle:@"Some Text"];
[item setTitleTextAttributes:attributes forState:UIControlStateNormal];

self.navigationItem.rightBarButtonItem = item;

Swift:

let fontSize:CGFloat = 20;
let font:UIFont = UIFont.boldSystemFont(ofSize: fontSize);
let attributes:[String : Any] = [NSFontAttributeName: font];

let item = UIBarButtonItem.init();

item.title = "Some Text";
item.setTitleTextAttributes(attributes, for: UIControlState.normal);

self.navigationItem.rightBarButtonItem = item;