Frage

müssen sich ein Hintergrundbild und einen Titel in meiner Navigationsleiste. Für das Bild schreibe ich eine Kategorie:

@implementation UINavigationBar(MyNavigationBar)
- (void)setBackgroundImage {
    UIImageView *aTabBarBackground = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"navBarBackgrd.png"]];
    [self addSubview: aTabBarBackground];
    [self sendSubviewToBack: aTabBarBackground];
    [aTabBarBackground release];
}
@end

ich diese Kategorie in meinen AppDelegate nennen und Hintergrundbilder in der gesamten Anwendung habe:

[navigationController.navigationBar setBackgroundImage]; 

Jeder Viewcontroller hat einen Titel:

[self setTitle:@"MyTitle"];

Aber nach dem Hintergrundbild einstellen, habe ich ein Problem mit dem Titel.

In den ersten Blick alle Werke, sehe ich das Hintergrundbild und den Titel :-) Aber in der nächsten Ansicht, verschwindet der Titel. Nur das Hintergrundbild sichtbar ist. Vielleicht ist der Titel unter dem Bild?

Technisch ist es möglich, sowohl zu zeigen. Mit diesem Trick funktioniert es:

  1. ausblenden Navigationsleiste vor dem nächsten Viewcontroller zu öffnen:

    [self.navigationController setNavigationBarHidden: YES];

  2. Zeigen Sie die Navigationsleiste im nächsten Viewcontroller:

    [self.navigationController setNavigationBarHidden: NO];

Nun, Bild und Titel ist sichtbar, aber diese Lösung ist nicht die beste, -)

War es hilfreich?

Lösung

Ich habe es!

@implementation UINavigationBar(MyNavigationBar)
- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"navBarBackgrd.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

finden Sie unter Hintergrundbild für Navigationsansicht

Andere Tipps

Nach IOS5 Sie sollten dies tun, zum Beispiel in AppDelegate


 UIImage *img = [[UIImage imageNamed:@"image.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:0 green: 0 blue:0  alpha:1]];

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top