Hintergrundbild für die navigation anzuzeigen
Ich habe Probleme mit dem richtigen anzeigen hintergrund Bild der navigation anzuzeigen.
Hier das pic:
Hier ist der code:
- (id)initWithStyle:(UITableViewStyle)style {
if (self = [super initWithStyle:style]) {
UIImage *image = [UIImage imageNamed: @"bg_table_active.png"];
UIImageView *imageview = [[UIImageView alloc] initWithImage: image];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
initWithTitle:NSLocalizedString(@"Settings", @"")
style:UIBarButtonItemStyleDone
target:self
action:@selector(GoToSettings)];
self.navigationItem.titleView = imageview;
self.navigationItem.rightBarButtonItem = addButton;
self.navigationItem.hidesBackButton = TRUE;
}
return self;
}
Wie kann ich das Bild Strecken, um die ganze navigation anzeigen?
- Siehe stackoverflow.com/a/11916080/636542 für die Lösung nach IOS5
InformationsquelleAutor Mladen | 2009-06-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weiß ich genau, das in meiner app. In AppDelegate habe ich diesen code:
drawRect
code. Könnte ich etwas falsch?Ich geändert Mike Rundle version so, dass das ein benutzerdefiniertes Bild kann eingestellt werden, wenn notwendig. Ich habe auch zusammengeführt in 40lb-Farbe-der-Bienen vorgeschlagenen änderungen. initImageDictionary muss aufgerufen werden, während der Initialisierung:
code
- (void)drawRect:(CGRect)rect { if(navigationBarImages==NULL){ navigationBarImages=[[NSMutableDictionary alloc] init]; } UIImage *image=[navigationBarImages objectForKey:[NSValue valueWithNonretainedObject: self]]; if (image==null) { image = [UIImage imageNamed:@"dq-locator-nav-Bild.png"]; } [image drawInRect:CGRectMake(0, 0, self.frame.Größe.Breite, selbst.frame.Größe.Höhe)]; }code
Mike Rundle und Casebash code ist Super. Früher habe ich [NSValue valueWithNonretainedObject:self] zu vermeiden, copyWithZone Fehler. Das einwickeln selbst in einer NSValue-Objekt erlaubt es, kopiert werden in die navigationBarImages Wörterbuch.
http://foobarpig.com/iphone/uinavigationbar-with-solid-color-or-image-background.html
Hoffe es hilft..
Können Sie diese auch
`
http://developer.apple.com/iphone/library/featuredarticles/ViewControllerPGforiPhoneOS/UsingNavigationControllers/UsingNavigationControllers.html#//apple_ref/doc/uid/TP40007457-CH7
Blick auf Abbildung 1 in diesem link - wäre es besser, legen Sie das Hintergrundbild auf Ihrem navigationbar nicht Ihre navigationitem?
[_homeNavigationController.navigationBar setBackgroundImage:Bild forBarMetrics:UIBarMetricsDefault];
Leider gibt es keine Unterstützung für die Verwendung von Hintergrundbildern in einer Navigationsleiste in iPhone OS 3.0 oder früheren Versionen. Der einzige Weg, um das Erscheinungsbild anzupassen, ist der Stil und Farbe. Nicht perfekt, ich weiß.
In Ihrem code, den Sie versuchen, Strecken Sie die Titel anzeigen der Navigations-Leiste auf "gehen Sie unter" die rechts-Taste. Aber dies ist unmöglich, da die drei Ansichten der Navigationsleiste (zurück-Taste Titel-und rechts-Taste) sein sollen, die in der gleichen Schicht und sind angepasst, um sich nicht überlappen. Das ist ein feature.
Ich weiß, es gibt eine Reihe von Drittanbieter-apps, ändern Sie den hintergrund Bild aber Sie "hacken" des Systems und die Verwendung von nicht unterstützten privaten API:s oder Annahmen der internen Datenstrukturen der Navigationsleiste. Diese Programme werden wahrscheinlich fehlschlagen (Abstürzen oder falsch angezeigt wird) in zukünftige Versionen des iPhone OS.
Werden Sie wahrscheinlich nicht zu verwirren wollen mit diesem. Akzeptieren Sie die Tatsache, dass Sie (noch) nicht haben, einen benutzerdefinierten hintergrund Bild in Navigationsleisten. Es tut weh, ich weiß. Aber wenn Sie hack the system und Ihre app nicht in zukünftigen Versionen von OS, Apple wird ziehen Sie die app aus dem app store und verlieren Sie alle Einnahmen, bis Sie Sie geändert haben, die app. Es ist Ihr Anruf...