2017-05-23 1 views
2

Je souhaite que l'arrière-plan d'une barre de navigation soit une couleur avec 0,5 alpha pour pouvoir voir partiellement le contenu de la vue ci-dessous. J'ai essayé de faire comme ceci:Définition d'une couleur d'arrière-plan avec alpha dans la barre de navigation

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    self.navigationController?.navigationBar.barTintColor = UIColor.blue 
    self.navigationController?.navigationBar.isTranslucent = true 
} 

Si je mets à isTranslucenttrue, la couleur navigationBar est clair. Si je mets isTranslucent à false, la couleur est opaque même si je mets UIColor.blue.alpha(0.5)

Comment est-ce que je pourrais faire ceci?

Répondre

1

Si vous voulez juste l'arrière-plan NavigationBar (hors barre d'état) avec alpha .. Essayez cette

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController?.navigationBar.isTranslucent = true 
    self.navigationController?.navigationBar.backgroundColor = UIColor.blue.withAlphaComponent(0.5) 
} 

Si vous voulez la couleur d'arrière-plan avec alpha y compris status bar, Im peur que vous devez utiliser une image avec une valeur alpha . see this

+0

Merci, il suffit d'appliquer cette couleur à la barre de navigation, mais lorsque vous faites ce que vous avez posté, je vois que cela affecte aussi la barre d'état et maintenant je la vois en couleur de fond claire. Y a-t-il un moyen d'empêcher cela? – AppsDev

0

Vous pouvez également faire une image de la couleur désirée et la transparence, puis dans votre AppDelegate dans la fonction didFinishLaunchingWithOptions simplement ajouter ceci:

//navigation bar 
     let navBackgroundImage:UIImage! = UIImage(named: "nav.png") 
     UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, for: .default) 

nav.png est votre image.

Espérons que cela aide. :)