2012-03-28 65 views
1

我用這個代碼來設置背景。 它確實改變了背景,但Retina存在一些問題。如何設置導航欄在iOS5中(視網膜)的背景是什麼?

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navi_bar.png"] forBarMetrics:UIBarMetricsDefault]; 

我有兩個PNG文件:navi_bar.png(320 * 44)和[email protected](640 * 88)

導航欄的背景總是使用圖像navi_bar.png,即使在視網膜。

如果我用這個代碼:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"[email protected]"] forBarMetrics:UIBarMetricsDefault]; 

結果是這樣的視網膜: enter image description here

背景有雙重高度...

我有一整個上午在這個問題上。 任何人都可以幫助我嗎? 謝謝!

回答

3

增加2倍的圖像試試這個

UINavigationBar *navBarName = [[self navigationController] navigationBar]; 
    UIImage *backgroundImg = [UIImage imageNamed:@"navi_bar"]; 
    [navBarName setBackgroundImage:backgroundImg forBarMetrics:UIBarMetricsDefault]; 
+0

是的,我用你的代碼來改變每個視圖 - 控制的背景。有用。但我必須在任何地方編寫此代碼......爲什麼我的代碼無法工作?這是蘋果的錯誤嗎? – 2012-03-28 05:07:52

+0

看到此鏈接http://stackoverflow.com/questions/7855365/ios-5-uinavigationbar-appearance-setbackgroundimage-does-not-do-work,檢查答案 – Deepesh 2012-03-28 05:18:20

+0

鏈接的問題是不是跟我一樣。我的代碼可以改變背景,但問題是,配備Retina,背景仍然使用navi_bar.png,不[email protected]。我測試你的代碼,它可以在Retina中使用適當的png。 – 2012-03-28 05:40:40

0

您可以使用:[[UINavigationBar appearance] setBackgroundImage:aImg forBarMetrics:UIBarMetricsDefault];

在iOS 5中

0

這是奇怪的,你應該檢查是否已正確與否

0

我有同樣的問題:即使[email protected]可用,NavBarBg.png也適用於視網膜設備。但它似乎只與模擬器有關。當我在設備上運行應用[email protected]應用正確。