2013-01-09 30 views
14

Ho bisogno sovrapporre UINavigationBar con UIView come quiCome aggiungere UIView sulla barra di navigazione?

http://screencast.com/t/ZKXNFcAzVu & gt; ">

C'è un modo per farlo, tranne usando UIView personalizzato con il tasto indietro come NAV bar?

+1

Se si vuole fare questo tipo di stuf di meglio che si utilizza la navigazione personalizzato creato da UIView. Di avere il controllo completo su di esso e puoi dare quello che vuoi dare .... – CRDave

risposta

23

è possibile aggiungere una visualizzazione secondaria alla vista di base della domanda

[[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView]; 

per assicurarsi che viene visualizzato solo quando il controller della vista è visibile è possibile aggiungerlo e rimuoverlo nei metodi delegati viewDidAppear e viewDidDisappear. Ecco un esempio che mostra una casella blu che si sovrappone a loro.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib.  
    vTestView = [[UIView alloc] initWithFrame:CGRectMake(10.0f, 
                 10.0f, 
                 100.0f, 
                 100.0f)]; 
    vTestView.backgroundColor = [UIColor blueColor]; 
} 


-(void)viewDidAppear:(BOOL)animated 
{ 
    [[[UIApplication sharedApplication] keyWindow] addSubview:vMyCustomUIView]; 
} 
-(void)viewDidDisappear:(BOOL)animated 
{ 
    [vMyCustomUIView removeFromSuperview]; 
} 
+0

In swift 2 ... lasciare overlay: UIView = UIView (frame: CGRectMake (0, 0, UIScreen.mainScreen() .bounds.size.width, UIScreen.mainScreen(). bounds.size.height)) overlay.backgroundColor = UIColorFromHex (0x000000, alpha: 0.7) UIApplication.sharedApplication(). keyWindow! .addSubview (overlay) –

12

Utilizzare il metodo:

- (void)bringSubviewToFront:(UIView *)view 

Quindi nel tuo caso che sarà:

[navigationBar addSubview:myRibbon]; 
[navigationBar bringSubviewToFront:myRibbon]; 

Inoltre non dimenticate che con questo modo, non sarà mostrato il vostro nastro completamente tranne se si esegue questa operazione:

navigationBar.clipsToBounds = NO; 
1

I nascondi NavigationBar e aggiungi invece UIView. Sembra lo stesso di Navbar. quindi aggiungi un altro UIView con il segnalibro rosso. Accanto, dà la possibilità di animare il segnalibro sul touch separatamente.

Se ho aggiunto un segnalibro in questo modo: [navigationBar addSubview: myRibbon]; Era nascosto su metà della dimensione

0

Ecco uno Swift 3 risposta

UIApplication.shared.keyWindow?.addSubview(menuView) 
Problemi correlati