取消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 {}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容