2010-08-06 7 views
5

Je l'ai vu faire sur certaines applications, où la barre de navigation est en fait plus petite que la 44px par défaut, et il y a un UIView (qui a une fonctionnalité) ci-dessus la barre de navigation ...Pouvez-vous ajouter un UIView au-dessus d'un UINavigationBar?

Je veux plus une image d'arrière-plan personnalisée, que j'ai réussi à comprendre comment faire, mais je ne sais pas par où commencer à faire quelque chose comme ça.

Toute aide est grandement appréciée :) Mark

Répondre

3

J'ai trouvé une sorte de façon de le faire:

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 20.0f, 320.0f, 32.0f)]; 

UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)]; 
UIImageView *back = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"logo.png"]]; 
[back setFrame: CGRectMake(0, 0, 320, 20)]; 
[tempView addSubview: back]; 
[[self view] addSubview: tempView]; 

[[self view] addSubview: navBar]; 

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle: @"Controls"]; 
[navBar pushNavigationItem:navItem animated:NO]; 

qui semble faire l'affaire, bien que je ne peux pas sembler comprendre comment obtenir ce 'dans' le navigationController afin que les boutons de retour fonctionnent, au moment où je dois insérer manuellement un leftBarButtonItem dans le navItem, le bouton de retour ne semble jamais montrer ...

0

Oui vous pouvez,

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 20.0f, 320.0f, 32.0f)]; 
UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)]; 
navBar.navigationBar.layer.zPosition =-1; 
self.view insertSubview:navBar atIndex:[[self.view subviews] count]]; 
[self.view insertSubview:tempView atIndex:[[self.view subviews] count]]; 
Questions connexes