2014-12-30 11 views
7

Ich versuche, darunter meine Navigationsleiste transparent in Bezug auf ein Bild zu setzen, so etwas wie das folgende Bild:Make Navigationsleiste transparent Bild unten in Bezug auf iOS 8.1

enter image description here

ich die Lösung in transparent navigation bar ios versucht, aber ich bekomme das obige Ergebnis nicht, ich bekomme nur das Symbol links, aber ohne jegliche Farbe in der Navigationsleiste, völlig transparent. Aber wenn ich eine Hintergrundfarbe einstelle, verschwindet die Transparenz überhaupt.

Es gibt eine Möglichkeit, eine Farbe in der Navigationsleiste festzulegen und transparent zu machen ??

Vielen Dank im Voraus.

Antwort

30

nur auf dem 8,1-Simulator überprüft und bekam sehr ähnliches Ergebnis zu Ihrem Bild

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) 

wichtigste Punkt hier ist die Hintergrundfarbe mit Alpha.

Überprüfen Sie das angehängte Bild, vielleicht habe ich etwas verpasst?

enter image description here

+0

Ich bin mir nicht sicher, dass Ihre Frage zu verstehen, haben Sie über Alpha Chanel der Farbe gefragt? – sage444

+0

Danke @ sage44, mach dir keine Sorgen –

0

Haben Sie versucht, die Alpha-Eigenschaft der navigationBar zu setzen? In Ihren Root-View-Controller an die Navigationssteuerung ...

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

, wenn Sie Alpha-Ansicht verwenden ist es gelten auch Subviews? – sage444

+0

Ich glaube, dass es ist, warum Sie die Hintergrundfarbe so einstellen könnten, dass die nicht deckende Farbe mit '[self.navigationController.navigationBar setBackgroundColor: [UIColor colorWithRed: 0.5 grün: 0.5 blau: 0.5 alpha: 0.5]];' – timgcarlson

+0

Ich glaube, dass Alpha-Wert der Hintergrundfarbe nicht das gleiche wie Alpha-Eigenschaft von UIView, aber Sie können überprüfen;) – sage444

12

Um diesen Stil global festgelegt, die UIAppearance APIs verwenden. In AppDelegate der application:didFinishLaunchingWithOptions: den folgenden Code hinzu:

// 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

Danke! Dies ist die richtige Antwort. Die anderen Antworten müssen in letzter Zeit nicht getestet worden sein. – Michael