取消点击效果,我们通常有下面几种做法:
1、设置adjustsImageWhenHighlighted属性
button.adjustsImageWhenHighlighted = NO;
2、设置UIControlStateHighlighted状态下的图片
[button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"like"] forState: UIControlStateHighlighted];
3、我们设置normal和selected状态下显示不同图片
[button setImage:[UIImage imageNamed:@"like"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"like_selected"] forState:UIControlStateSelected];
并且都不显示点击高亮效果时,上面的两种方法就不够用了,button在normal状态下点击,没有问题,但是当button是UIControlStateSelected状态,按下时会显示UIControlStateNormal效果的图片,这是因为当selected = YES的时候,当前按钮处于UIControlStateSelected状态,当按住按钮的时候按钮的状态变成了UIControlStateNormal状态
最终解决办法:
1、自定义button,重写系统setHighlighted方法,该方法
@interface MyButton : UIButton
// 重写系统setHighlighted方法,取消按钮点击高亮显示
- (void)setHighlighted:(BOOL)highlighted {}










网友评论