Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change UIBarButtonItem Text Font Size and Color

I would like to know how can I change the text font of the BarButtonItem ? While I could not set the setTitleTextAttributes

class TextfieldLogin : UITextField {

func INIT(){
    let numberToolbar = UIToolbar(frame: CGRectMake(0,0,320,50))
    numberToolbar.tintColor = UIColor.whiteColor()
    numberToolbar.barTintColor = UIColor(red: 155.0/255, green: 14.0/255, blue: 45.0/255, alpha: 1.0)

    numberToolbar.items = [
        UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil),
        UIBarButtonItem(title: "DONE", style: UIBarButtonItemStyle.Plain, target: self, action: "close"),
        UIBarButtonItem.setTitleTextAttributes([NSFontAttributeName : UIFont.systemFontOfSize(18.0),NSForegroundColorAttributeName : UIColor.redColor(),NSBackgroundColorAttributeName:UIColor.blackColor()],
            forState: UIControlState.Normal)        ]

    numberToolbar.sizeToFit()

    }
}
like image 708
CAN Avatar asked Aug 11 '15 13:08

CAN


2 Answers

Is this what your looking for?

Objective-C:

[buttonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
[UIFont fontWithName:@"Helvetica-Bold" size:20.0], NSFontAttributeName,
[UIColor blackColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];

Swift:

let titleDict: NSDictionary = [NSFontAttributeName: "Helvetica-Bold"]
self.numberToolbar.titleTextAttributes = titleDict
like image 161
MSU_Bulldog Avatar answered Sep 18 '22 01:09

MSU_Bulldog


As with all UIBarItem's, you can set the text attributes using:

- (void)setTitleTextAttributes:(NSDictionary *)attributes
                      forState:(UIControlState)state

You can also use tintColor to change the text color.

I would recommend sticking to Apple's style guide in terms of using bold fonts only on the done item.

like image 22
Fennelouski Avatar answered Sep 21 '22 01:09

Fennelouski