navigationBar Hintergrundbild auf dem iPad mit iOS 5 im landscape-Modus
Im kämpfen mit diesem für eine Weile und ich kann nicht finden, dass jemand mit einem ähnlichen Problem.
Mein problem ist, dass das Hintergrundbild geladen wird für den landscape-Modus auf dem iPad nicht die richtige (es loades die hochformat-version des Bildes).
Auf das iphone oder den iPod-es funktioniert wie sein soll.
Den code im mit auf meiner AppDelegate-Datei ist die folgende:
if ( [[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0 ) {
//Create resizable images
UIImage *gradientImageP = [[UIImage imageNamed:@"header"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage *gradientImageL = [[UIImage imageNamed:@"header-Landscape"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:gradientImageP
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:gradientImageL
forBarMetrics:UIBarMetricsLandscapePhone];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:0 green: 0 blue:0 alpha:1]];
}
Das problem ist in dieser Zeile?
[[UINavigationBar appearance] setBackgroundImage:gradientImageL
forBarMetrics:UIBarMetricsLandscapePhone];
Meine Bilder Namen sind die folgenden:
- header-Landschaft~iphone.png
- header-Landschaft@2x~iphone.png
- header-Landschaft~ipad.png
- header~iphone.png
- header@2x~iphone.png
- header~ipad
Edit: Screenshots des Problems auf der Navigationsleiste:
- iPhone hochformat:
http://imageshack.us/photo/my-images/200/iphoneportrait.png/ - iPhone Querformat:
http://imageshack.us/photo/my-images/193/iphonelandscape.png/ - iPad portrait:
http://imageshack.us/photo/my-images/62/ipadportrait.png/ - iPad im Querformat:
http://imageshack.us/photo/my-images/200/ipadlandscape.png/
Jemand mit diesem Problem?
Im offen für Ideen, wie dieses Problem zu lösen, tkz
- Erwartest du, dass ~ipad geladen werden, die auf ein iPad stattdessen? Ich habe nicht gesehen, dieses übereinkommen vor. Sie haben einige code, der automatisch für Sie erledigt?
- Ja, im erwarten, dass die Dateinamen mit der ~ipad geladen werden, die auf diesem Gerät. Im mit dieser Art von Namen, die auf die anderen Bilder von der app und Sie korrekt geladen. Trotzdem, ich habe versucht, verschiedene Arten von Dateinamen für alle Dateien, die aber, für die navBar, dieses problem bleibt bestehen :\
InformationsquelleAutor iruleonu | 2011-10-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach diesen Code verwenden:
Nicht Anhängen ~iPad arbeiten für den portrait-Modus?
Es ist nicht für mich. Haben Sie auch angeben ~iPhone, um es zu arbeiten?
Bekam ich ein eigenes Bild der Arbeit, die für das iPad tun
Aber für landscape-Modus verwendet das hochformat-Bild an und wiederholt die letzten pixel-Spalte füllen Sie die fehlenden Teil, so gar nicht gut ist für dein problem aber auch dies kann von nutzen sein für andere Leser.
War ich nicht in der Lage zu verwalten, das Erscheinungsbild Methode funktioniert für das iPad mit rotation. Auch wenn der frame der Navigationsleiste wird angepasst, korrekt, die Grafik ändert sich nicht. Am Ende hakte ich den
viewWillAppear:animated
undwillAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
Methoden alle meine Controller einfach anrufensetBackgroundImage:
mit der korrekten version auf dem iPad. Hässlich, aber funktioniert.Es ist möglich, dies könnte ein Fehler sein lohnt sich, die Berichterstattung zu Apple. Die Namen der definiert sich selbst auch verwirrend,
UIBarMetricsLandscapePhone
macht keinen Sinn, auf dem iPad und Ihre Standard-app Orientierung Landschaft sein könnte!Ich glaube, Sie brauchen etwas wie das hier tun: