2012-03-28 5 views
1

Ich benutze diesen Code, um den Hintergrund einzustellen. Es ändert den Hintergrund, aber es gibt ein Problem mit Retina.Wie stelle ich den Hintergrund der Navigationsleiste in ios5 (Retina) ein?

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

I zwei pngs haben: navi_bar.png (320 * 44) und [email protected] (640 * 88)

Der Hintergrund der Navigationsleiste verwendet immer Bild navi_bar.png, auch in Retina.

Wenn ich diesen Code:

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

Das Ergebnis ist dieses in Retina: enter image description here

Hintergrund die doppelte Höhe hat ...

ich den ganzen Vormittag damit verbracht haben zu diesem Problem. Kann mir jemand helfen? Danke!

Antwort

3

Versuchen Sie, diese

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

Ja, ich verwende Ihren Code, um den Hintergrund in jedem Viewcontroller zu ändern. Es klappt. Aber ich muss diesen Code überall schreiben ... Warum funktioniert mein Code nicht? Ist es ein Fehler von Apple? –

+0

siehe diesen Link http://stackoverflow.com/questions/7855365/ios-5-uinavigationbar-appearance-setbackgroundimage-does-not-do-work und überprüfen Sie die Antwort – Deepesh

+0

Das Problem der Verbindung ist nicht das gleiche mit mir. Mein Code kann den Hintergrund ändern, aber das Problem ist, dass bei Retina der Hintergrund immer noch navi_bar.png und nicht [email protected] verwendet. Ich teste deinen Code, er kann den richtigen PNG in Retina verwenden. –

0

können Sie verwenden: [[UINavigationBar appearance] setBackgroundImage:aImg forBarMetrics:UIBarMetricsDefault];

in iOS 5

0

Dieses seltsame ist, sollten Sie überprüfen, ob Sie das 2x Bild richtig hinzugefügt haben oder nicht

0

Ich hatte das gleiche Problem: NavBarBg.png wird für Retina-Gerät angewendet, obwohl [email protected] verfügbar ist. Aber es scheint nur mit Simulator verwandt zu sein. Wenn ich die App auf dem Gerät starte, wird [email protected] korrekt angewendet.

Verwandte Themen