Vraag Navigatiebalk balk, tint en titeltekstkleur in iOS 8


De achtergrondtekst in de statusbalk is nog steeds zwart. Hoe verander ik de kleur in wit?

// io8, swift, Xcode 6.0.1 
override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.orangeColor()]

}

enter image description here


124
2017-09-24 04:25


oorsprong


antwoorden:


In AppDelegate.swift, in application(_:didFinishLaunchingWithOptions:) Ik heb het volgende gedaan:

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 = [NSAttributedStringKey.foregroundColor : UIColor.white]

Voor titleTextAttributes, de docs zeggen:

U kunt het lettertype, de tekstkleur, de tekstschaduwkleur en tekst opgeven   schaduwverschuiving voor de titel in het woordenboek met tekstattributen


241
2018-01-13 19:24



Ik vind Alex 'antwoord leuk. Als je iets snel wilt uitproberen in a ViewController zorg ervoor dat je gebruikt

viewWillAppear()
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]
}

enter image description here


92
2017-09-27 16:24



Om de kleur universeel te wijzigen, moet deze code in de NavigationController's viewDidLoad functie:

class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Status bar white font
        self.navigationBar.barStyle = UIBarStyle.Black
        self.navigationBar.tintColor = UIColor.whiteColor()
    }
}

Om het per te veranderen ViewController je zou moeten verwijzen naar de NavigationController van de ViewController en schrijf soortgelijke lijnen in dat ViewController's viewWillAppear functie.


78
2017-09-24 04:27



// In Swift 4

self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]

20
2017-10-16 08:58



Om in te werken doelstelling C Ik moet de volgende regels erin zetten viewWillAppear in mijn CustomViewController.

[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];
[self.navigationController.navigationBar setTranslucent:NO];

Voor Swift2.x dit werkt:

self.navigationController?.navigationBar.barTintColor = UIColor.redColor()

Voor Swift3.x dit werkt:

self.navigationController?.navigationBar.barTintColor = UIColor.red

16
2017-08-18 08:27



Om dit te doen in storyboard (Interface Builder Inspector)

Met behulp van IBDesignable, we kunnen meer opties toevoegen aan Interface Builder Inspector voor UINavigationController en tweak ze op storyboard. Voeg eerst de volgende code toe aan uw project.

@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
        }
    }
}

Stel vervolgens eenvoudig de attributen voor UINavigationController in op storyboard.

enter image description here


8
2017-07-14 03:27



Als u de tintkleur en -barok voor de gehele app wilt instellen, kunt u de volgende code toevoegen aan AppDelegate.swift in

 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
`

NavigatiebalkTintKleur en tintColor is ingesteld


7
2018-04-04 16:14



Bijgewerkt met snel 4

override func viewDidLoad() {
    super.viewDidLoad()
        self.navigationController?.navigationBar.tintColor = UIColor.blue
        self.navigationController?.navigationBar.barStyle = UIBarStyle.black
}

5
2017-12-13 11:33



Snel 4

override func viewDidLoad() {
    super.viewDidLoad()

    navigationController?.navigationBar.barTintColor = UIColor.orange
    navigationController?.navigationBar.tintColor = UIColor.white
    navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
}

3
2018-01-09 10:02