我試圖設置UIButton
的titleColor
在選擇某個特定顏色時突出顯示,但是,我需要設置按鈕以供用戶觸摸時選擇在UIButton
。UIButton標題顏色在選擇和突出顯示
我已經設定,就像這樣:
[button setTitleColor:normalColor forState:UIControlStateNormal];
[button setTitleColor:superDuperSpecialColor forState:UIControlStateHighlighted];
[button setTitleColor:superDuperSpecialColor forState:UIControlStateSelected];
[button addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventTouchDown];
但是,當按鈕使用[senderButton setSelected:YES]
的action:
方法被選中,它設置titleColor
到normalColor
,而不是superDuperSpecialColor
,這是應該的,因爲它被突出顯示和選擇。
註釋掉setSelected:
調用可以防止按鈕變爲並保持選中狀態,並且註釋掉突出顯示的狀態顏色看起來沒有任何影響。
我是否要爲了重頭戲之後調用setSelected:
添加目標UIControlEventTouchCancel
,UIControlEventTouchUpInside
和UIControlEventTouchUpOutside
結束 - 或 - 改變titleColor
爲UIControlStateNormal
到superDuperSpecialColor
當按鈕獲取觸摸?
在一個側面說明,我也喜歡設置titleColor
像這樣:
[button setTitleColor:superDuperSpecialColor
forState:(UIControlStateHighlighted | UIControlStateSelected)];
但是,這似乎並沒有工作。這是爲什麼? Objective-C是否檢查狀態等同性?
如果它開始了正常的顏色和設置選擇讓它也正常,你確定有什麼顏色的事情發生? –
@MarcusAdams將它設置爲選中將其設置爲'superDuperSpecialColor',但只有在該按鈕未被高亮顯示後才顯示該顏色,因爲在按下時該按鈕變爲「被選中」,這與按鈕高亮顯示時相同。 – RileyE