我有一個UIButton,選中時不應該在被觸摸時改變狀態。 默認行爲是它被觸摸時處於UIControlStateHighlighted狀態,這讓我很生氣。如何禁用UIButton的高亮控制狀態?
對此提出建議?
我有一個UIButton,選中時不應該在被觸摸時改變狀態。 默認行爲是它被觸摸時處於UIControlStateHighlighted狀態,這讓我很生氣。如何禁用UIButton的高亮控制狀態?
對此提出建議?
您的按鈕必須將其buttonType
設置爲自定義。
在IB中,您可以取消選中「高光調整圖像」。
編程可以使用theButton.adjustsImageWhenHighlighted = NO;
Similiar選項可用於「已禁用」狀態良好。
根據按鈕的默認值到突出顯示狀態的變化,您可以調用幾種方法將它們設置爲您所需的值。因此,如果圖像的變化,你可以做
[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted];
如果文本改變了,你可以做
[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted];
其他類似的功能:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
setTitleColor是所有我需要禁用UIBUTTON文本的突出顯示 – atulkhatri 2014-09-03 17:48:00
確定這裏是一個簡單的解決方案,如果這對你有用,之後在我的頭上敲了一個星期後,終於想到我只是在TouchUpInside或TouchDown的IBAction方法的第一行或其他任何作品中設置突出顯示= NO。對於我來說,TouchUpInside很好。
-(IBAction)selfDismiss:(id)sender {
self.btnImage.highlighted = NO;
NSLog(@"selfDismiss");
etc, etc, etc.
}
是擁有自己被禁用按鈕的外觀同樣有用。
這會爲你工作:
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
3號線在這裏的伎倆......
這個數據與設定圖像/和backgroundImage
這對我來說非常適合。 'UIButton'的'adjustsImageWhenHighlighted'屬性似乎隻影響背景圖像。 – 2012-05-07 15:30:34
請注意,如果決定將圖像分配給「禁用狀態」,則不會調用setBackgroundImage。相反,您應該執行以下操作: [button setImage:image forState:UIControlStateDisabled]; 也請注意,正如在此線程中所提到的,adjustsImageWhenHighlighted UIButton屬性僅影響背景圖像。 – HamasN 2013-07-22 05:58:46
adjustsImageWhenHighlighted = NO;
除了以上在IB中取消選中「高亮調整圖像」的答案,確保按鈕類型設置爲CUSTOM。
這是缺失的部分:按鈕類型CUSTOM。感謝名單! – JOM 2015-04-22 09:57:03
如果我想保留系統UIButton,該怎麼辦?我不能刪除高光調整圖像? – 2017-08-16 10:29:37
避免的UIButton的線路中斷設置爲剪輯,改用標準截斷中東
只是兩件事情:
UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom];
btnTransparentComponent.adjustsImageWhenHighlighted = NO;
對於SWIFTY開發 -
yourButton.adjustsImageWhenHighlighted = false
讓您的按鈕類型 - 「自定義」 和取消選中 - 高亮調節圖像和 你做。
斯威夫特3+
button.adjustsImageWhenHighlighted = false
button.adjustsImageWhenDisabled = false
你知道這個程序的版本會是怎樣的任何機會呢? 現在,我已經通過將其禁用並將其作爲被選中進行打扮來使它工作得很駭人。 – kbanman 2010-02-17 06:50:08
uibutton.adjustsImageWhenHighlighted = NO; – Haydn 2010-02-20 03:53:32
還要確保按鈕類型設置爲CUSTOM。 (作爲Mosib阿薩德在另一個答案中提到) – 2014-07-30 16:04:23