2012-04-16 6 views
5

Ich mache so etwas wie diese:Warum ändert das Hintergrundbild meiner UINavigationBar die Größe der Navigationsleiste?

UIImage *barBackgroundImage = [UIImage imageNamed:@"myImage.png"]; 
[[UINavigationBar appearance] setBackgroundImage: 
            backgroundImage 
            forBarMetrics:UIBarMetricsDefault]; 

und das resultierende UINavigationBar ist viel größer als die Standard-Navigationsleiste. Mir ist bewusst, dass meine Bildgröße das Problem sein könnte. Gibt es eine Möglichkeit, dies programmatisch zu erledigen?

+0

Ich habe das gleiche Problem..hat Sie am Ende, dies zu lösen? –

+1

Ich habe es jetzt. Wenn Ihr Retina-Bild 640x88 ist, geben Sie einfach den Namen im Code ohne @ 2x an. Aus irgendeinem Grund wird das System die Größe nicht richtig ändern, wenn Sie das '@ 2x' in den Code einfügen (oder wenn Sie etwas ohne das '@ 2x' benennen) –

Antwort

4

So stelle ich das Hintergrundbild UINavigationControllernavigationBar ein.

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault]; 
[self.navigationController.navigationBar setTintColor:LIGHTBROWN]; 

navbar.png ist 320x44 bzw. 640x88 für [email protected].

2

Folgen Sie diesem Link, um Ihren Code kompatibel mit iOS4, 5 und 6: müssen http://robert-varga.com/?p=735

Sie nur mit der Größe von 320x44 oder 640x88 (für Retina-Display) in Photoshop oder einer anderen Software ein rechteckiger machen und Import es zu Ihrem Projekt

Verwandte Themen