取消UIButton点击时的高亮效果

取消点击效果,我们通常有下面几种做法:
1、设置adjustsImageWhenHighlighted属性

button.adjustsImageWhenHighlighted = NO;

2、设置UIControlStateHighlighted状态下的图片

[button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"like"] forState: UIControlStateHighlighted];

3、我们设置normalselected状态下显示不同图片

[button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"like_selected"] forState:UIControlStateSelected];

并且都不显示点击高亮效果时,上面的两种方法就不够用了,buttonnormal状态下点击,没有问题,但是当buttonUIControlStateSelected状态,按下时会显示UIControlStateNormal效果的图片,这是因为当selected = YES的时候,当前按钮处于UIControlStateSelected状态,当按住按钮的时候按钮的状态变成了UIControlStateNormal状态


最终解决办法:
1、自定义button,重写系统setHighlighted方法,该方法

@interface MyButton : UIButton

// 重写系统setHighlighted方法,取消按钮点击高亮显示
- (void)setHighlighted:(BOOL)highlighted {}

你可能感兴趣的:(取消UIButton点击时的高亮效果)