开发者

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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜