2014-12-30 15 views
7

cerco di impostare la mia barra di navigazione trasparente per quanto riguarda l'immagine di sotto di questo, qualcosa come la seguente immagine:Fai barra di navigazione trasparente per quanto riguarda sotto l'immagine in iOS 8.1

enter image description here

ho cercato la soluzione in transparent navigation bar ios ma io non ottengo il risultato sopra, ottengo solo l'icona a sinistra ma senza alcun colore nella barra di navigazione, completamente trasparente. Ma se imposto un colore di sfondo, la trasparenza scompare del tutto.

C'è un modo per impostare un colore nella barra di navigazione e renderlo trasparente ??

Grazie in anticipo.

risposta

30

appena controllato sul simulatore 8.1 e ottenuto risultato molto simile alla foto

let bar:UINavigationBar! = self.navigationController?.navigationBar 

    bar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default) 
    bar.shadowImage = UIImage() 
    bar.backgroundColor = UIColor(red: 0.0, green: 0.3, blue: 0.5, alpha: 0.3) 

punto principale qui è colore di sfondo con alfa.

Controllare l'immagine allegata, forse mi sono perso qualcosa?

enter image description here

+0

Non sono sicuro che capisca la tua domanda, hai chiesto di Alpha Chanel del colore? – sage444

+0

Grazie @ sage44, non preoccuparti per questo –

0

Hai provato a impostare la proprietà alpha della barra di navigazione? Nella tua radice View Controller per il controller di navigazione ...

[self.navigationController.navigationBar setBackgroundColor:[UIColor greenColor]]; 
[self.navigationController.navigationBar setAlpha:0.3f]; 
+0

quando si imposta alpha alla visualizzazione non si applica anche ai subviews? – sage444

+0

Credo che sia questo il motivo per cui è possibile impostare il colore di sfondo per avere il colore non opaco con '[self.navigationController.navigationBar setBackgroundColor: [UIColor colorWithRed: 0.5 green: 0.5 blue: 0.5 alpha: 0.5]];' – timgcarlson

+0

Credo che il valore alfa del colore di sfondo non sia lo stesso della proprietà alfa di UIView, ma puoi controllare;) – sage444

12

Per impostare questo stile a livello globale, utilizzano le API UIAppearance. In AppDelegate di application:didFinishLaunchingWithOptions: aggiungere il seguente codice:

// Sets background to a blank/empty image 
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default) 
// Sets shadow (line below the bar) to a blank image 
UINavigationBar.appearance().shadowImage = UIImage() 
// Sets the translucent background color 
UINavigationBar.appearance().backgroundColor = UIColor(red: 0.0, green: 0.3, blue: 0.5, alpha: 0.3) 
// Set translucent. (Default value is already true, so this can be removed if desired.) 
UINavigationBar.appearance().translucent = true 
+0

Grazie! Questa è la risposta corretta. Le altre risposte non devono essere state testate di recente. – Michael