UIButton and its subclasses have 4 states which can change by code or stage config in IB
normal
highlighted
selected
disabled
Check UIButton.h in UIKit framework and you'll see how to use them:
- (void)setTitle:(NSString *)title forState:(UIControlState)state;
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
- (void)setImage:(UIImage *)image forState:(UIControlState)state;
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
If you setTitle, image, or backGroundImage for normal state, the default one of other states are same as normal one.
Default state is Normal, other state can be set:
[button setHighlighted:YES]
[button setSelected:YES]
[button setEnable:NO]
Button change from Normal to Highlighted on click, so if you want to keep normal title, please check:
-Don't use setImage or config image for normal and hightlighted state(just use backgroundImage)
-Don't setTitle:@"" forState:UIControlStateHighlighted or config to
nothing in IB.
-Don't setTitleColor or choose titleColor in IB same as UIButton backgroundColor.
You can test with 4 different titles and backGroundImages for 1 button and know how can it display.