开发者

Disable highlighted UIControl state of a UIButton

开发者 https://www.devze.com 2023-03-02 02:50 出处:网络
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

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

精彩评论

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