1

Нужно фоновое изображение И заголовок в моей навигационной панели. Для изображения я пишу категорию:Цель-C: Фоновое изображение и название в панели навигации

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

Я называю эту категорию в моем AppDelegate и иметь фоновые изображения во всем приложении:

[navigationController.navigationBar setBackgroundImage]; 

Каждого ViewController имеет название:

[self setTitle:@"MyTitle"]; 

Но после установки фонового изображения у меня возникла проблема с названием.

В первом представлении каждое произведение, я вижу фоновое изображение и название :-) Но в следующем представлении заголовок исчезает. Видно только фоновое изображение. Может быть, название находится под изображением?

Технически можно показать и то, и другое. С помощью этого трюка он работает:

  1. Скрыть панель навигации ДО открытия следующего ViewController:

    [self.navigationController setNavigationBarHidden: YES]; не

  2. Показать панель навигации в следующем ViewController:

    [self.navigationController setNavigationBarHidden: NO];

Теперь изображение и название видимы, но это решение не самое лучшее ;-)

ответ

2

Я получил его!

@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 

См Background image for navigation view

2

После IOS5 Вы должны сделать это, например, в 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]]; 

+1

, но вы не можете установить titleview, используя этот код: - |. Вы должны сделать Категория для этого. – 2013-03-12 08:47:57

 Смежные вопросы

  • Нет связанных вопросов^_^