取消UIButton点击时的高亮效果
2019-03-07 本文已影响0人
ElaineYin
取消点击效果,我们通常有下面几种做法:
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 {}