Le texte d'arrière-plan dans la barre d'état est toujours noir. Comment changer la couleur en blanc?
// io8, swift, Xcode 6.0.1
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orangeColor()]
}
J'aime la réponse d'Alex. Si vous voulez quelque chose de rapide à essayer,
ViewController
assurez-vous d'utiliserviewWillAppear() override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) var nav = self.navigationController?.navigationBar nav?.barStyle = UIBarStyle.Black nav?.tintColor = UIColor.white nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange] //nav?.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.orange] // swift 4.2 }
la source
NSForegroundColorAttributeName
devrait maintenant êtreNSAttributedStringKey.foregroundColor
NSAttributedString.Key.foregroundColor
au lieu deNSForegroundColorAttributeName
Pour changer la couleur universellement, ce code doit rester dans la
NavigationController
de »viewDidLoad
fonction:class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate { override func viewDidLoad() { super.viewDidLoad() // Status bar white font self.navigationBar.barStyle = UIBarStyle.Black self.navigationBar.tintColor = UIColor.whiteColor() } }
Pour changer par
ViewController
vous devez faire référence à laNavigationController
duViewController
et écrire des lignes similaires dans cetteViewController
deviewWillAppear
fonction.la source
Swift 5
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
Swift 4
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
la source
Pour travailler dans objective-c, je dois mettre les lignes suivantes
viewWillAppear
dans mon CustomViewController.[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]]; [self.navigationController.navigationBar setTranslucent:NO];
Pour Swift2.x, cela fonctionne:
self.navigationController?.navigationBar.barTintColor = UIColor.redColor()
Pour Swift3.x, cela fonctionne:
self.navigationController?.navigationBar.barTintColor = UIColor.red
la source
Pour faire ce travail dans le storyboard (Interface Builder Inspector)
Avec l'aide de
IBDesignable
, nous pouvons ajouter plus d'options à l'Interface Builder InspectorUINavigationController
et les modifier sur le storyboard. Tout d'abord, ajoutez le code suivant à votre projet.@IBDesignable extension UINavigationController { @IBInspectable var barTintColor: UIColor? { set { navigationBar.barTintColor = newValue } get { guard let color = navigationBar.barTintColor else { return nil } return color } } @IBInspectable var tintColor: UIColor? { set { navigationBar.tintColor = newValue } get { guard let color = navigationBar.tintColor else { return nil } return color } } @IBInspectable var titleColor: UIColor? { set { guard let color = newValue else { return } navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: color] } get { return navigationBar.titleTextAttributes?["NSForegroundColorAttributeName"] as? UIColor } } }
Ensuite, définissez simplement les attributs pour UINavigationController sur le storyboard.
la source
Si vous souhaitez définir la couleur de teinte et la couleur de la barre pour l'ensemble de l'application, le code suivant peut être ajouté à AppDelegate.swift dans
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. var navigationBarAppearace = UINavigationBar.appearance() navigationBarAppearace.tintColor = UIColor(red:1.00, green:1.00, blue:1.00, alpha:1.0) navigationBarAppearace.barTintColor = UIColor(red:0.76, green:0.40, blue:0.40, alpha:1.0) navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] return true `
Barre de navigationTintColor et tintColor sont définis
la source
Mis à jour avec Swift 4
override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.tintColor = UIColor.blue self.navigationController?.navigationBar.barStyle = UIBarStyle.black }
la source
Dans Swift5 et Xcode 10
self.navigationItem.title = "your name" let textAttributes = [NSAttributedStringKey.foregroundColor:UIColor.white] navigationController?.navigationBar.titleTextAttributes = textAttributes
la source
Version Swift 4.2 de la réponse d'Albert-
UINavigationBar.appearance().barTintColor = UIColor(red: 234.0/255.0, green: 46.0/255.0, blue: 73.0/255.0, alpha: 1.0) UINavigationBar.appearance().tintColor = UIColor.white UINavigationBar.appearance().titleTextAttributes = [.foregroundColor : UIColor.white]
la source
Définition de la couleur du texte du titre de la barre de navigation sur blanc dans Swift version 4.2:
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
la source
Swift 4
override func viewDidLoad() { super.viewDidLoad() navigationController?.navigationBar.barTintColor = UIColor.orange navigationController?.navigationBar.tintColor = UIColor.white navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] }
la source
Swift 4.1
Ajouter une fonction à viewDidLoad
override func viewDidLoad() { super.viewDidLoad() setup() }
Dans la
setup()
fonction, ajoutez:func setup() { navigationController?.navigationBar.prefersLargeTitles = true navigationController?.navigationBar.barStyle = .blackOpaque navigationItem.title = "YOUR_TITLE_HERE" navigationController?.navigationBar.barTintColor = .black let attributes = [NSAttributedStringKey.foregroundColor: UIColor.white] navigationController?.navigationBar.largeTitleTextAttributes = attributes }
la source
Pour une couleur personnalisée à
TitleText
àNavigationBar
, voici un code simple et court pour Swift 3:UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
ou
navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName :UIColor.white]
la source
dans Swift 4.2
var nav = self.navigationController?.navigationBar nav?.barStyle = UIBarStyle.Black nav?.tintColor = UIColor.white nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orange]
la source
Swift jusqu'à Swift 3.2 (pas Swift 4.0)
self.navigationController?.navigationItem.largeTitleDisplayMode = .always self.navigationController?.navigationBar.prefersLargeTitles = true self.navigationController?.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] // unconfirmed but I assume this works: self.navigationController?.navigationBar.barTintColor = UIColor.white self.navigationController?.navigationBar.barStyle = UIBarStyle.black
la source
Swift 5.1
Copiez et collez uniquement
ViewDidLoad()
et modifiez sa taille et sa taille selon vos besoins. Avant de copier et coller, ajoutez la barre de navigation en haut de l'écran.navigationController?.navigationBar.titleTextAttributes = [ NSAttributedString.Key.font: UIFont(name: "TitilliumWeb-Bold.ttf", size: 16.0)!, NSAttributedString.Key.foregroundColor: UIColor.white]
Si cela ne fonctionne pas, vous pouvez essayer de changer uniquement la couleur du texte
navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
la source
Dans Swift 3, cela fonctionne:
navigationController?.navigationBar.barTintColor = UIColor.white navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
la source