Cambiar el color seleccionado de la barra de tabs en un guión gráfico

Quiero cambiar los elementos de la barra de tabs para que sean de color rosa cuando se seleccionen en lugar del azul predeterminado.

¿Cómo puedo lograr esto usando el editor de guiones gráficos en Xcode 6?

Aquí están mis ajustes actuales que no funcionan, el fondo azul funciona pero el rosa no funciona:

enter image description here

Añada el atributo Color de tiempo de ejecución denominado “tintColor” de StoryBoard. Esto está funcionando ( para Xcode 8 y superior ).

si quiere un color no seleccionado … también puede agregar unselectedItemTintColor .

configuración de tintColor como atributo de tiempo de ejecución

Esta elegante solución funciona muy bien en SWIFT 3.0 y SWIFT 4.0 :

En el guión gráfico:

  1. Seleccione su Barra de tabs
  2. Establezca un atributo de tiempo de ejecución denominado tintColor para el color deseado del icono seleccionado en la barra de tabs
  3. Establezca un atributo de tiempo de ejecución llamado unselectedItemTintColor para el color deseado del icono no seleccionado en la barra de tabs

enter image description here

Edición: probado con Xcode 8, para iOS 10 y superior

En Swift, usando xcode 7 (y posterior), puede agregar lo siguiente a su archivo AppDelegate.swift:

 UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0) 

Este es el aspecto del método completo:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // I added this line UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0) return true } 

En el ejemplo anterior, mi artículo será blanco. El “/ 255.0” es necesario porque espera un valor de 0 a 1. Para el blanco, podría haber usado 1. Pero para otro color probablemente usará valores RGB.

En Xcode8 he cambiado ImageTint del guión gráfico y funciona bien.

enter image description here

El resultado:

enter image description here

Swift 3 | Xcode 10

Si desea que todos los elementos de la barra de tabs tengan el mismo color (seleccionados y no seleccionados) …


Paso 1

Asegúrese de que sus activos de imagen estén configurados para Renderizar como = Imagen de plantilla . Esto les permite heredar el color.

Activos de Xcode


Paso 2

Use el editor de guiones gráficos para cambiar la configuración de la barra de tabs de la siguiente manera:

  • Establecer Barra de tabs: Tono de la imagen al color que desea que el icono seleccionado herede.
  • Establezca la barra de tabs: Tinte de barras al color que desea que sea la barra de tabs.
  • Establecer vista: matizar con el color que desea ver en el editor de guiones gráficos, esto no afecta el color del icono cuando se ejecuta su aplicación.

Editor de Xcode Storyboard


Paso 3

Los pasos 1 y 2 cambiarán el color del icono seleccionado. Si aún desea cambiar el color de los elementos no seleccionados, debe hacerlo en el código. No he encontrado una manera de hacerlo a través del editor de guiones gráficos.

Cree una clase de controlador de barra de tabs personalizada …

 // TabBarController.swift class TabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() // make unselected icons white self.tabBar.unselectedItemTintColor = UIColor.white } } 

… y asigne la clase personalizada al controlador de escena de la barra de tabs.

Editor de Xcode Storyboard


Si descubres cómo cambiar el color del icono no seleccionado a través del editor del guión gráfico, házmelo saber. ¡Gracias!

ponga este código en viewDidLoad del controlador de vista que desea cambiar el color de

 [[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]]; 

También puede establecer el color del tinte de la barra de imagen seleccionada por la ruta de la clave:

enter image description here

¡¡Espero que esto te ayudará!! Gracias

XCode 8.2, iOS 10, Swift 3: ahora hay un atributo tabBar para tabBar :

 self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0) 

De alguna manera, no podemos cambiar el elemento seleccionado de la barra de tabs Color de tinte usando el guión gráfico solo, por lo tanto, agregué el código siguiente en mi ViewDidLoad, espero que esto ayude.

 [[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 

Puede cambiar los colores de UITabBarItem por el guión gráfico, pero si desea cambiar los colores por código, es muy fácil:

// Use esto para cambiar el color de la barra seleccionada

  [[UITabBar appearance] setTintColor:[UIColor blueColor]]; 

// Esto para cambiar la barra no seleccionada (iOS 10)

  [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]]; 

// Y esta línea para cambiar el color de todos los tabbar

  [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]]; 

Esta es la solución en Swift 3 que funciona en iOS 10:

En primer lugar, crea su propia subclase de controlador de barra de tabs y la agrega a su controlador de tabs en su guión gráfico. En el método viewDidLoad() , puede personalizar la barra de tabs. ¡Aquí se debe indicar que el atributo tintColor de tabBar representa el color del elemento seleccionado, no el color de los no seleccionados! Para cambiar el color de los elementos no seleccionados, recomiendo hacer un bucle a través de cada elemento y usar los colores originales de las imágenes, para que no se muestren en gris automáticamente.

 class CustomTabBarVC: UITabBarController { override func viewDidLoad() { super.viewDidLoad() self.tabBar.tintColor = AppColor.normalRed self.tabBar.barTintColor = .white self.tabBar.isTranslucent = true if let items = self.tabBar.items { for item in items { if let image = item.image { item.image = image.withRenderingMode( .alwaysOriginal ) } } } } } 

El único inconveniente de este enfoque es que las imágenes de los artículos ya deben tener el color deseado.

Agregue este código en su aplicación delegado -did_finish_launching_with_options función

 UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) ) 

pon el RGB del color requerido

Puede subclasificar el UITabBarController y reemplazar el que está con él en el guión gráfico. En su implementación viewDidLoad de la subclase, llame a esto:

 [self.tabBar setTintColor:[UIColor greenColor]]; 

La mejor forma es cambiar Image Tint en el guión gráfico