Manish Ahuja Manish Ahuja - 5 months ago 40
iOS Question

Disable highlighted UIControl state of a UIButton

I have a

UIButton
, I want to disable its
UIControlStateHighlighted
if the button is in selected state. With that I mean, if the current state of
UIButton
is
ControlStateSelected
then on touch down, its state should not change to highlighted which is the default behavior of a
UIButton
.

Answer
[button setBackgroundImage:[UIImage imageNamed:@"button_image"]forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];

Third line is the trick here, it will disable the highlighted state of UIButton if button is already in Selected State