¿Cómo puedo cambiar el texto y el icono de colores para UITabBar y UITabBarItems en iOS 7? El valor predeterminado de texto gris parece tenue y difícil de leer para no seleccionada tabbar elementos.

InformationsquelleAutor Ed Fernandez | 2013-09-11

11 Comentarios

  1. 69

    Hay dos cosas que usted necesita hacer para esta:

    1) Si desea personalizar la TabBar sí mismo, usted necesita para establecer el barTintColor para la tabBarController:

        //this will generate a black tab bar
        tabBarController.tabBar.barTintColor = [UIColor blackColor];
    
        //this will give selected icons and text your apps tint color
        tabBarController.tabBar.tintColor = appTintColor;  //appTintColor is a UIColor *

    2) Establecer el tabBarItem aspecto del texto para cada estado que desea anular:

    [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],
                                                        NSForegroundColorAttributeName : appTintColor
                                                        } forState:UIControlStateSelected];
    
    
    //doing this results in an easier to read unselected state then the default iOS 7 one
    [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],
                                                        NSForegroundColorAttributeName : [UIColor colorWithRed:.5 green:.5 blue:.5 alpha:1]
                                                        } forState:UIControlStateNormal];
    • Pero no es la de dar color negro de la barra de pestañas.. es que aparece algo grisáceo..
    • Ed cubre casi todo lo que necesita aquí, por desgracia, no parece ser una manera de ajustar las otras fichas de colores. Hasta ahora la única opción es el uso de imágenes.
    • Muchas gracias.
    • ¿Cómo se establece la no seleccionada icono de color?
    • Esto no cambia el color de los elementos no seleccionados. Sólo camino parece ser el uso de imágenes como la de abajo.
    • tamaño 10? Un poco pequeño?
    • También quiero seleccionados los colores de los iconos, he encontrado que el uso de la imagen correcta, y la representación como un modo original es de una manera. Por favor, dígame si usted encuentra cualquier otra manera.

  2. 43

    Esto funcionó para mí, para teñir no de elementos activos en el tabbar

    UITabBarItem *item = [self.tabBar.items objectAtIndex:1];
    

    //aquí se necesita utilizar el icono con el color que usted desea, ya que se muestra como es

    item.image = [[UIImage imageNamed:@"unselected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    

    //este icono se utiliza para la ficha seleccionada y polarizado como se define en

    self.tabBar.tintColor
    item.selectedImage = [UIImage imageNamed:@"selected.png"];
    
    • Esta parece ser la única forma de cambiar el color de las pestañas no seleccionadas.
    • El uso de imageWithRenderingMode es la clave de la pestaña cambiar los colores de la imagen
    • impresionante la solución y la única solución que funcionó… por cierto alguna manera de cambiar la ficha del artículo título del color así ?
  3. 11

    Ed la respuesta es perfecta, pero permítanme añadir una cosa.
    TabBar está en mora translúcido, por lo tanto afectado por el color de la vista bajo el TabBar (es decir, cada miembro de la viewController de la visión del color afecta TabBar apariencia.).

    Así que me puse a continuación el código no se vean afectados.

    self.tabBarController.tabBar.translucent = false;
    

    Junto con Ed la respuesta aquí es un código completo que uso ahora.

    self.tabBarController.tabBar.barTintColor = [UIColor blackColor];
    self.tabBarController.tabBar.translucent = false;
    self.tabBarController.tabBar.tintColor = [UIColor blueColor];
    
    • thx cambio con el código tintColor trabajo para mí.
  4. 7

    Probado en iOS 8 permanente para el color del texto (activada/desactivada) y los colores de la imagen (activada/desactivada) sin crear dos imágenes con diferentes colores foreach ficha:

    Color de texto:

    [[UITabBar appearance] setTintColor: selectedTabColor ];
        [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                           **yourFont**, NSFontAttributeName,
                                                           ** selectedTabColor**, NSForegroundColorAttributeName,
                                                           nil] forState:UIControlStateNormal];
    
        [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                           **yourFont**, NSFontAttributeName,
                                                           **selectedTabColor**, NSForegroundColorAttributeName,
                                                           nil] forState:UIControlStateSelected];
    

    Imágenes de color: (suponiendo que las imágenes originales tienen el color que desee de la pantalla como si está desactivada)

    En un UITabBarController subclase -awakeFromNib :

        for (int i =0; i<self.viewControllers.count; i++)
        {
            UITabBarItem *tab = [self.tabBar.items objectAtIndex:i];
            tab.image = [tab.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
        }
    

    Créditos: toda la red de internet y de desbordamiento de pila XD

    • Gracias! ¿Tal vez saber cómo agregar separadores, como en esta imagen? dropbox.com/s/0u6jk2yv4kugfpg/…
    • para que uno probablemente se necesita para crear una subclase de la barra de pestañas o en la pestaña elemento de la barra de
  5. 6

    Código de manera libre para cambiar el color del texto en la barra de pestañas:

    Si usted apenas está utilizando iOS 10 entonces usted puede cambiar la Imagen de Matiz en su Ficha de la Barra de

    ¿Cómo puedo cambiar el texto y el icono de colores para tabBarItems en iOS 7?

    Si usted también está apoyando a iOS 9 y menor, entonces también debe agregar tintColor a su usuario definidor de tiempo de ejecución de los atributos en cada ficha elemento de la barra de

    ¿Cómo puedo cambiar el texto y el icono de colores para tabBarItems en iOS 7?

    si usted también desea cambiar su color del icono asegúrese de que el color correcto de la imagen está en su assest carpeta y cambiar el Render como a la Imagen Original

    ¿Cómo puedo cambiar el texto y el icono de colores para tabBarItems en iOS 7?

  6. 3

    Esto Debería funcionar Perfectamente para iOS 8 también

    Para no seleccionada tabbar elemento:

    [[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor: [UIColor whiteColor]];
    

    Seleccionados tabbar elemento:

    [[UITabBar appearance] setTintColor:[UIColor orangeColor]];
    
    • el color se cambia en la pestaña de conmutación
    • Entonces no use [[UITabBar apariencia] setTintColor:[UIColor orangeColor]];
    • [tabBarItem1 setFinishedSelectedImage:[[UIImage imageNamed:@»mytrip_tab_selected»]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] withFinishedUnselectedImage:[[UIImage imageNamed:@»mytrip_tab»]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
    • El comentario de arriba va a trabajar al tener dos imágenes con diferentes colores.podemos presentar seleccionando y deseleccionando la UITabbar Elementos.
    • buen código para no seleccionada iconos, pero me tiene un requisito específico, que sólo un elemento de ficha debe tener un color diferente.
  7. 2
    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor whiteColor], UITextAttributeTextColor,
                                                               nil] 
    
  8. 0

    De intentarlo

    for (UITabBarItem *item in self.tabBarController.tabBar.items) {
            item.image = [[UIImage imageNamed:@"youimage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    
            [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor whiteColor], UITextAttributeTextColor,
                                                               nil] forState:UIControlStateNormal];
    
            item.selectedImage = [UIImage imageNamed:@"youimage.png"];
        }
    
    • UITextAttributeTextColor está en desuso en iOS7
  9. 0

    @Usharao respuesta anterior trabajó para mí;

    Mi problema estaba en el inicio de todos mis TabBarItems
    parecía estar en un estado seleccionado, todos con el mismo «Azul» color teñido.
    Por la selección de todas las fichas de cada uno de los colores del estado habría de ser corregido.

    He utilizado este código siguiente en mi clase AppDelegate: (compatible para >= IOS9)

    [[UIView appearanceWhenContainedInInstancesOfClasses:@[[UITabBar class]]] 
                                            setTintColor:[UIColor lightGrayColor]];
    
  10. 0

    Ahora de iOS10 uno puede utilizar

    @property (nonatomic, readwrite, copy, nullable) UIColor *unselectedItemTintColor
    

    para cambiar el color predeterminado para TabBarItem de imagen y texto en no seleccionada estado.

    Por lo tanto, el par de propiedades tintColor y unselectedItemTintColor nos da control total sobre los elementos de colores.

Dejar respuesta

Please enter your comment!
Please enter your name here