2010-01-19 185 views
4

如何更改UINavigationBar中按鈕的顏色?例如,我使用淺灰色背景的UINavigationBar,並且我需要按鈕爲深灰色(幾乎是黑色)。這將是很酷的所有按鈕類型的一個解決方案,即後退按鈕,與圖像按鈕,按鈕與文字UINavigationBar按鈕顏色

感謝

+0

你在說如何通過代碼或通過接口生成器來做到這一點? – shawnwall 2010-01-19 21:46:02

回答

1

類似的問題都準備好張貼在這裏。

How to change the text color on UINavigationBar button items

+0

謝謝。我讀過它。但它實際上是關於如何更改標籤顏色,但我需要更改背景顏色。我可以從UINavigatorBar獲取UIButton對象,但下一步是什麼? – Dmitry 2010-01-20 08:58:07

+0

對不起,我明白你的意思了。 http://stackoverflow.com/questions/1340639/button-color-in-navigation-bar-iphone 這可能意味着你在正確的方向,以及跟進評論點擊這裏: HTTP:/ /www.gauravv.com/2009/12/29/iphone-development-tip-custom-uinavigationbar/ 它看起來像你將不得不使用一個圖像的按鈕,或子類現有的用戶界面元素。更改導航欄的色彩屬性更改了欄和按鈕的顏色,而不是單個元素。 – Convolution 2010-01-20 15:54:04

+0

does not回答問題真的.. – TommyG 2011-07-29 18:59:28

2

這是一種可怕的黑客但是,放置在-viewDidAppear時:方法(一個或多個),它將改變UINavigationButtons的背景顏色(色調,實際上)。

UINavigationBar *navBar = [[self navigationController] navigationBar]; 
for (UIView *subview in [navBar subviews]) 
    { 
    if ([NSStringFromClass([subview class]) isEqualToString:@"UINavigationButton"]) 
     { 
     if (![[subview title] isEqualToString:@"Done"]) 
      [subview setTintColor:[UIColor colorWithRed:255.0/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:1.0]]; 
     } 
    } 

它將不會但是改變UINavigationItemButtonViews色彩 - 這就是用於導航後退按鈕。如果有人發現影響他們的方式,請告訴我。