Disable highlighted UIControl state of a UIButton
I have a UIButton
, I want to disable its UIControlStateHighlighted
if the button is in selected s开发者_开发问答tate. 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
.
[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
Uncheck "highlight adjusts image" in IB, Also make sure that button type is set CUSTOM in IB
if(button.selected == YES)
button.adjustsImageWhenHighlighted = NO;
else
button.adjustsImageWhenHighlighted = YES;
Hope this helps
just two things:
UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom];
btnTransparentComponent.adjustsImageWhenHighlighted = NO;
精彩评论