para pantalla grises filtros escala como colores color cambiar apariencia adaptaciones ios swift ios8 uinavigationbar

ios - pantalla - escala de grises iphone



Barra de navegación, tinte y color del texto del título en iOS 8 (12)

// En Swift 4

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

El texto de fondo en la barra de estado sigue siendo negro. ¿Cómo cambio el color a blanco?

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


Actualizado con swift 4

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


En AppDelegate.swift , en la application(_:didFinishLaunchingWithOptions:) puse lo siguiente:

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]

Para titleTextAttributes , los docs dicen:

Puede especificar la fuente, el color del texto, el color de sombra del texto y el sombreado de texto para el título en el diccionario de atributos de texto


En Swift 3 esto funciona:

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


Me gusta la respuesta de Alex. Si quieres algo rápido para probar en un ViewController asegúrate de usar

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


Para cambiar el color universalmente, este código debe estar en la función viewDidLoad NavigationController :

class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate { override func viewDidLoad() { super.viewDidLoad() // Status bar white font self.navigationBar.barStyle = UIBarStyle.Black self.navigationBar.tintColor = UIColor.whiteColor() } }

Para cambiarlo por ViewController , debería hacer referencia al NavigationController desde ViewController y escribir líneas similares en la función viewWillAppear ViewController .


Para color personalizado a TitleText en NavigationBar , aquí un código simple y corto para Swift 3:

UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white]

o

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName :UIColor.white]


Para trabajar en viewWillAppear -C tengo que poner las siguientes líneas en viewWillAppear en mi CustomViewController.

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

Para Swift2.x esto funciona:

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

Para Swift3.x esto funciona:

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


Si desea establecer el color del tinte y el color de la barra para toda la aplicación, se puede agregar el siguiente código a AppDelegate.swift en

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 `

La navegación barTintColor y tintColor está configurada


Swift 4

override func viewDidLoad() { super.viewDidLoad() navigationController?.navigationBar.barTintColor = UIColor.orange navigationController?.navigationBar.tintColor = UIColor.white navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white] }


Swift 4.1

Agregue un func a viewDidLoad

override func viewDidLoad() { super.viewDidLoad() setup() }

En la función setup() , agregue:

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 }


Para hacer este trabajo en el guión gráfico (Interface Builder Inspector)

Con la ayuda de IBDesignable , podemos agregar más opciones al Inspector de Interface Builder para UINavigationController y modificarlas en el guión gráfico. Primero, agregue el siguiente código a su proyecto.

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

Luego simplemente establece los atributos para UINavigationController en el guión gráfico.