我的構建目標設置爲IOS5這是我理解UIButton.tintColor
介紹...爲什麼我的UIButton.tintColor不起作用?
我有這個在我viewDidLoad中的視圖控制器
[timelineButton setTintColor:[UIColor blackColor]];
[timelineButton setTitle:@"test" forState:UIControlStateNormal];
文本適當變化,但按鍵ISN」 t黑色?
謝謝!
我的構建目標設置爲IOS5這是我理解UIButton.tintColor
介紹...爲什麼我的UIButton.tintColor不起作用?
我有這個在我viewDidLoad中的視圖控制器
[timelineButton setTintColor:[UIColor blackColor]];
[timelineButton setTitle:@"test" forState:UIControlStateNormal];
文本適當變化,但按鍵ISN」 t黑色?
謝謝!
只需使用標準圓角矩形類型。對此不起作用? – sayguh
顯然不是。 –
它可以在Storyboard/Interface Builder中爲我工作:將按鈕類型設置爲'system',然後將(UIButton的)視圖的背景設置爲所需的顏色 - 完美無缺! –
它着色您突出顯示的狀態顏色。 當你點擊/點擊UIButton時,只要按住/點擊UIButton,就會出現用tintColor指定的顏色。
resetButton.tintColor = [UIColor colorWithRed:0.764 green:1.000 blue:0.000 alpha:1.000];
該按鈕在正常狀態下爲白色。 但是,如果我點擊按鈕的顏色變成紅色,但只有那樣。
如果您需要更改的按鈕,所以它看起來像一個紅色或藍色的UIControlStateNormal然後
變化在Interface Builder或以編程方式與
UIButton *resetButton = [UIButton buttonWithType:UIButtonTypeCustom];
更改UIButtonType到UIButtonTypeCustom的屬性自己並重新創建圓角
resetButton.backgroundColor = [UIColor redColor];
resetButton.layer.borderColor = [UIColor blackColor].CGColor;
resetButton.layer.borderWidth = 0.5f;
resetButton.layer.cornerRadius = 10.0f;
今天,我也是mee這個問題。我使用委託來解決它。
[button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(buttonPressReset:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
-(void)buttonPress:(id)sender{
UIButton* button = (UIButton*)sender;
[button setBackgroundColor:[UIColor greenColor]];
NSLog(@"buttonPressed");
}
-(void)buttonPressReset:(id)sender{
UIButton* button = (UIButton*)sender;
[button setBackgroundColor:[UIColor redColor]];
NSLog(@"buttonPressReset");
}
這不完全 - 你還應該添加UIControlEventTouchDragEnter到觸發buttonPress的事件,並且UIControlEventTouchDragExit觸發buttonPressReset的事件。 –
正如其他答案中所述,tint對於自定義按鈕類型不起作用。確保你明確地聲明瞭按鈕類型。不要只用[UIButton的頁頭] INIT]
這將工作:
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[mybutton setImage:[UIImage imageNamed:@"myImage"] forState:UIControlStateNormal];
mybutton.tintColor = [ODTheme blueTintColor];
確保您的按鈕 「類型」 設置爲系統。如果它設置爲自定義,則可能是按鈕顏色不變的原因。這是發生在我身上的事情,並將類型更改爲系統修復它。
應該試試這個方法:
- (void)setTitleColor:(UIColor *)color
forState:(UIControlState)state
更改按鈕文字的顏色,你可以使用:
resetButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
或者OBJ-C:
- (void)setTitleColor:(UIColor *)color
forState:(UIControlState)state
如果您的UIButton類型是系統,那麼只有色彩屬性是工作。所以首先你需要將你的按鈕類型設置爲系統,然後爲特定狀態應用色調。
btn.buttonType = UIButtonTypeSystem;
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
根據文檔,「此屬性不適用於所有按鈕類型。」。你使用什麼按鈕類型? –
使用圓角矩形類型 – sayguh