取消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 {}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容