2017-02-18 5 views
0

Ich möchte, dass meine UINavigationBar vollständig transparent ist, mit Ausnahme des Titels und der Schaltflächen, die ich hinzufüge.UINavigationBar in transparente Farbe ändern

Ich kann es einfach nicht funktionieren lassen. Ich habe alles schon probiert. Dies machte den meisten Sinn für mich:

override func viewDidLoad() { 
    self.title = "CURRENT BALANCE" 

    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController!.navigationBar.shadowImage = UIImage() 
    self.navigationController!.navigationBar.isTranslucent = true 

    self.setupSideMenu() 

    self.topUpButton.asCircle() 
    self.exchangeButton.asCircle() 
    self.lockButton.asCircle() 
} 

enter image description here

+0

Ihr Code arbeitet für mich in Ordnung. Sieh dir das an: https://gyazo.com/728a1cf8ad12356ce05a024ce4f0c252 Kannst du ein Demo-Projekt teilen? –

+0

Das ist genau was ich will! Ich verstehe nicht, warum es nicht auf meinem Gerät/Simulator passiert :( –

+0

Können Sie Demo teilen? Oder mailen Sie mir auf meine Mail. –

Antwort

1

dies mein OC-Code ist UINavigationBar zu machen völlig transparent zu sein:

zuerst die VC zu UINavigationControllerDelegate gesetzt, dann außer Kraft setzen - (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

// change the backgroudcolor black 
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.000 green:0.000 blue:0.000 alpha:1.000]; 
    // change the alpha 0.3 
    self.navigationController.navigationBar.alpha = 0.300; 
    // change the translucent YES 
    self.navigationController.navigationBar.translucent = YES; 

In der Zwischenzeit, überprüfen Sie Ihren Code über die self.view.backgroudcolor, wenn eine Ansicht unter Ihrem UINavigationBar haben eine backgroudcolor, Ihre UINavigationBar wird die Farbe der Ansicht anzeigen.

+0

Ich denke, 'swift' kann auch das tun, aber meine swift ist sehr arm. –

+0

Ich war in der Lage, Ihren Code Swift zu übersetzen, aber es machte keinen Unterschied für mich –

+0

haben Sie die 'self.view.backgroudcolor' gesetzt? Überprüfen Sie dies. –

1

Set Hintergrundfarbe Eigenschaft der Navigationsleiste

self.navigationController!.navigationBar.backgroundColor = UIColor.clear 

Update:

self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetricsDefault) 
+0

Macht keinen Unterschied für mich –

+0

@RutgerHuijsmans Aktualisiert meine Antwort bitte versuchen Sie dies und lassen Sie es mich wissen. – iYoung

+0

Die Lösung gefunden. Die darunterliegende Ansicht hatte einen weißen Hintergrund, so dass die Leiste bereits transparent war. –

0

Dies ist transparent Navigation Code für eine schnelle 4:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationBar.shadowImage = UIImage() 
    self.navigationBar.isTranslucent = true 
} 
Verwandte Themen