Rob W
Rob W

Reputation: 611

uibutton font subclass

I have the following method in my UIButton class:

- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) {
    // Initialization code

    self.titleLabel.font = [UIFont fontWithName:@"Chalkduster" size:16];
    self.titleLabel.lineBreakMode = UILineBreakModeWordWrap;

    self.titleLabel.textColor = [UIColor greenColor];

}
return self;
}

Works great except I can't see the border around the button: any ideas why? What do I have to do extra to make the button border show?

Thank you

Upvotes: 0

Views: 269

Answers (1)

Justin Boo
Justin Boo

Reputation: 10198

Do not subclass button do everything in IB it would be more better. This is how You can achieve what you want:

Select button -> go to Attributes Inspector -> Type -> select Rounded Rect. That will give You default button look.

Then select font (Press on T Letter) like this:

Screenshot

Also select text color behind Font.

Result:

Screenshot 2

EDIT:

Create button programmatically:

//create the button with RoundedRect type
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

//set the position of the button
button.frame = CGRectMake(100, 150, 100, 30);

//set the button's title
[button setTitle:@"Click Me!" forState:UIControlStateNormal];

//set the button's font
button.titleLabel.font = [UIFont fontWithName:@"Chalkduster" size:16];

//set the button's line break mode
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;

//set the button's text color
[button setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
//button.titleLabel.textColor = [UIColor greenColor]; // don't use this because button's text color after clicking it will be blue (default).

//add the button to the view
[self.view addSubview:button];

Result:

Screenshot 3

Note: Do not use textColor because Your text color after clicking the button will be default blue.

Upvotes: 1

Related Questions