2011-05-20 209 views
5

我正在繪製自定義UIButton,並且想要在突出顯示時設置藍色。我怎樣才能做到這一點?UIButton選擇顏色

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setBackgroundImage:[[UIImage imageNamed:@"test.png"] stretchableImageWithLeftCapWidth:100 topCapHeight:0] forState:UIControlStateNormal]; 
+0

它不是重複的。鏈接的問題不涉及高亮顏色,只涉及背景顏色。 – len 2013-02-13 15:57:01

+0

嘿,[我做了一個幫助你實現這個目標的類別](https://github.com/NSElvis/UIButton-ANDYHighlighted)。 – 3lvis 2014-12-07 14:35:00

回答

2

您可以嘗試使用其他圖像來完成這項工作。您也可以參考此鏈接:

Is it even possible to change a UIButtons background color?

+5

如果另一個SO問題完全回答這個問題,那麼您所要做的就是鏈接到它,請標記爲重複而不是發佈。 – 2011-05-20 03:25:41

+4

它不是重複的。鏈接的問題不涉及高亮顏色,只涉及背景顏色。 – len 2013-02-13 15:05:13

0

也許設置不同的背景圖像不同的狀態?

0

提供UIControlStateHighlighted的背景圖片。此外,它可能有助於關閉adjustsImageWhenHighlighted,但如果您爲突出顯示的狀態提供單獨的背景圖像,則無關緊要。

3

您可以按照以下步驟爲您的狀態設置圖像(普通/高亮/選定)。你必須有圖像。

[downButton setImage:[UIImage imageNamed:@"white.png"] forState:UIControlStateNormal]; 
[downButton setImage:[UIImage imageNamed:@"blue.png"] forState:UIControlStateHighlighted]; 
2

雅,你可以通過1px的「藍五色」映像創建1px的,並使用以下命令:

[yourButton setBackgroundImage:[UIImage imageNamed:@"theImageYouMade.png"] forState:UIControlStateHighlighted]; 

不能使用「setImage:」在我的方法,因爲加亮狀態該按鈕實際上僅在按鈕的中心顯示1px乘1px的圖像。

我的方法適用於可變大小的按鈕。使用setImage:要求您製作與您的按鈕尺寸完全相同的圖像。

-Chris

+1

美麗的解決方案! – smileBot 2013-08-17 15:49:07