取消點擊效果,我們通常有下面幾種做法:
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 {}