Цвет текста UINavigationBar в Swift
Как мне изменить цвет UINavigationBar
в Swift?
Большинство интернет-приложений говорят, чтобы сделать что-то вроде:
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
Что я перевел на
let titleDict: NSDictionary = ["NSForegroundColorAttributeName": UIColor.whiteColor()]
self.navigationController.navigationBartitleTextAttributes = titleDict
//self is referring to a UIViewController
Но это не сработает. Я уже изменил цвет фона и кнопок, но цвет текста не меняется. Любые идеи?
Ответы
Ответ 1
Используйте NSForegroundColorAttributeName
как клавишу, а не строку "NSForegroundColorAttributeName"
.
let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.whiteColor()]
self.navigationController.navigationBar.titleTextAttributes = titleDict
Ответ 2
Вы также можете изменить все проявления UINavigationController
в своем приложении в файле AppDelegate.swift
. Просто введите следующий код в функцию application:didFinishLaunchingWithOptions
:
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.YourNavigationButtonsColor() // Back buttons and such
navigationBarAppearace.barTintColor = UIColor.YourBackgroundColor() // Bar background color
navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.YourTitleColor()] // Title text color
Creds: Сообщение в блоге Coderwall
Ответ 3
Swift 3 +
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]
Swift 4.0
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white]
Ответ 4
Swift 2.0
self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
Ответ 5
//Nav Bar Title
self.title = "WORK ORDER"
self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
Ответ 6
Swift 3
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.white], for: .selected)
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.black], for: .normal)
Ответ 7
Я использую как:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]
return true
}
Ответ 8
Swift 4.x:
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
Ответ 9
Swift 4.2
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
Ответ 10
let titleDict = [NSForegroundColorAttributeName: UIColor.white]
self.navigationController?.navigationBar.titleTextAttributes = titleDict
Ответ 11
Swift 5.1:
let titleDict: NSDictionary = [NSAttributedString.Key.foregroundColor: UIColor.white]
navigationController?.navigationBar.titleTextAttributes = titleDict as? [NSAttributedString.Key : Any]