2014-04-03 27 views

回答

-19

我有同樣的問題以前發生在我身上。完全關閉Xcode,爲我解決了這個問題。

+0

絕對不是在我的情況下.. –

4

它因默認的UINavigationBar模糊效果而不同。我可以建議使用你的顏色設置2px寬度的可拉伸背景圖像。 事情是這樣的:

UIImage *image = [UIImage imageNamed:@"yourBlueImage"]; 
    image = [image stretchableImageWithLeftCapWidth:image.size.width/2.0f topCapHeight:0.0f]; 
    [yourNavBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

這就像一個把戲,因爲當你設置自定義和backgroundImage模糊效果將被禁用,你會得到確切的顏色。

+0

謝謝,我會稍後再試。但是,模糊效果如何與我的顏色一起玩?我的意思是,我把它設置爲不透明的,我的顏色混合到什麼程度? –

+1

實際上,這是因爲導航欄下面的背景顏色。似乎在你的情況下,這是白色的。因此,白色背景變得模糊,藍色,你會在導航欄中看到「更亮」的藍色。 – Krivoblotsky

37

導航欄和搜索欄之間的區別是因爲導航欄是半透明的,系統將爲導航欄應用默認的alpha值。

嘗試self.navigationController.navigationBar.translucent = NO;

+1

注意這在ios7中有不同的副作用比ios6。嘆息,哦,蘋果... – RobP

+0

是的,如果你需要與iOS6兼容,最好是設置導航欄的背景圖像,但不是iOS6/7具有不同定義的色調顏色(或條形色彩) – x4snowman

+0

爲所有的導航條做到這一點? –

10

UINavigationBar有一點奇怪的行爲,當談到你就可以設置顏色。正如其他成員指出的那樣,您必須將translucent布爾值設置爲false,但這並不是讓您的酒吧與您嘗試設置的顏色相匹配。它會很接近,但如果你仔細觀察,它不會是你嘗試使用的確切顏色。爲了在UINavigationBar上設置true顏色,您需要了解它在做什麼。

假設我想將我的UINavigationBar設置爲這個很酷的綠色。

enter image description here

這將是的RGB值:R = 90 | G = 200 | B = 95。

UINavigationBar將做什麼是應用它的內置造型通過給這綠色「光澤」的外觀。對我們來說,結果是,它正在我們的綠色RGB值和正在增加每個由20

enter image description here

的一個因素。如果你看看關閉綠色廣場上不完全匹配的一個UINavigationBar正在顯示具有相同的RGB值。這看起來稍微亮一些。

要解決這個問題,只需將您打算用於UINavigationBar的顏色的RBG值減少20即可。

因此R = 90 | G = 200 | B = 95將變爲R = 70 | G = 180 | B = 75。

enter image description here

+1

我喜歡這樣一個事實,即您解釋了爲什麼它會發生可能的修復而不僅僅是解決方法。 – MultiColourPixel

+1

布蘭登,我想嘗試這個解決方案,但在我的情況下原來預期R = 10,所以考慮你的解決方案,我應該嘗試什麼價值? – ARS

1
navigationBar.barStyle = UIBarStyle.blackOpaque 

合作,以防止不希望混合的背景,當沒有了以前的答案的工作(在iOS版9.3)。