UIButton titleLabel not displaying

You always need to specify ControlState when updating button's title! There are four possible values for UIButtons:

UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected

so for example:

[button setTitle:@"Title" forState:UIControlStateNormal];

and then you can set custom settings for titleLabel:

[button.titleLabel setFont:[UIFont fontWithName:@"Zapfino" size:20.0]];
[button.titleLabel setTextColor:[UIColor blueColor]];

[button setTitle:@"Title" forState:UIControlStateNormal];

Is the correct way to set the title string.

titleLabel is used to set the font and color.


Try using...

[button setNeedsLayout];
[button layoutIfNeeded];

It will force button to update the layout.