2010-08-06 1 views
5

ho visto fare su alcune applicazioni, in cui la barra di navigazione è in realtà più piccolo del 44px di default, e v'è un'UIView (che ha funzionalità) sopra la barra di navigazione ...Puoi aggiungere un UIView sopra una UINavigationBar?

voglio più un'immagine di sfondo personalizzata, che sono riuscito a capire come fare, ma non so da dove iniziare a fare qualcosa del genere.

Qualsiasi aiuto è molto apprezzato :) Mark

risposta

3

ho trovato una sorta di modo per farlo:

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]; 

che sembra fare il trucco, anche se non riesco a capire come ottenere questo 'nel' navigationController in modo che i pulsanti indietro funzionino, al momento devo inserire manualmente un leftBarButtonItem nel navItem, il pulsante Indietro non sembra mai mostrare ...

0

Sì, è possibile,

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]];