我正在實現UIButton的複選框子類。有2張背景圖片(開/關)和4種概念性狀態:爲突出顯示的狀態設置背景圖像會刪除自動突出顯示
on
- /不突出off
使圖像 - 關閉圖像/不突出on & pressed
- 使圖像/高亮off & pressed
- 關閉圖像/高亮
如果我設置背景圖片僅用於接通和斷開(UIControlStateNormal
和UIControlStateSelected
),該按鈕在被保持時突出顯示。
然而,當on & pressed
,它使用過的圖像(如預期的,因爲該狀態是UIControlStateSelected | UIControlStateHighlighted
,所以它使用正常狀態下的圖像)
所以我設置背景圖片爲UIControlStateSelected | UIControlStateHighlighted
是使圖像,但現在程序亮點被禁用 - 我假設,因爲如果你爲該狀態設置了特定的背景圖像,邏輯是你可能想覆蓋突出顯示。
我不想使用第三個圖像,是否可以爲UIControlStateSelected | UIControlStateHighlighted
設置背景圖像,並且仍然可以應用程序高亮顯示?
設置背景圖像後,我已經呼叫[self setAdjustsImageWhenHighlighted:YES];
。
我不知道是否/如何在類中設置按鈕類型,但我使用它的方式是在IB中添加一個UIButton,將它設置爲'Custom'類型,並將其設置爲類'MyCheckBoxClass'。該類直接來自UIButton。更新:在類的initWithCoder(我設置圖像)中,類型是'UIButtonTypeCustom' – Turch