¿Para cambiar el color del icono UITabBar no seleccionado en iOS 7?
ios7 uitabbarcontroller (4)
¿Supongo que no desea cambiar el color con tintColor? Otra opción es usar dos imágenes que se ven exactamente iguales, pero difieren en el color. Una imagen es la pestaña seleccionada, la otra no está seleccionada.
En su aplicación AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
, intente esto.
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
// repeat for every tab, but increment the index each time
UITabBarItem *firstTab = [tabBar.items objectAtIndex:0];
// also repeat for every tab
firstTab.image = [[UIImage imageNamed:@"someImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
firstTab.selectedImage = [[UIImage imageNamed:@"someImageSelected.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
Edición: para aquellos que no tienen el controlador de la barra de pestañas como su controlador de vista raíz, puede tomar el controlador de esta manera y el resto del código es el mismo.
UITabBarController *tabBarController = self.tabBarController;
Sé que esta pregunta también se hizo antes, pero aún así no conseguí ninguna solución buscando la solución en Internet.
Me refiero a los siguientes mensajes:
¿Cómo puedo cambiar el texto y los colores de los iconos para tabBarItems en iOS 7? Solo se puede cambiar el color de los iconos seleccionados usando tintColor
.
¿Cómo cambiar el color de los elementos de la barra de pestañas no seleccionados en iOS 7? En esto han escrito su propia clase GozTabBar
heredada de UIView
Quiero cambiar el color gris predeterminado del icono de la UITabBar
de UITabBar
cuando no está seleccionado.
Cualquier ayuda sería muy apreciada. Gracias por adelantado.
Si ya configuró las imágenes de la barra de pestañas con Storyboard, solo llame a este método en ViewDidLoad de su primera vista:
-(void) configTabBar
{
UITabBarController *tabBarController = [self tabBarController];
UITabBar *tabBar = tabBarController.tabBar;
for (UITabBarItem *tab in tabBar.items) {
tab.image = [tab.image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
tab.selectedImage = [tab.image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
}
}
cambiar UIControlStateHighlighted to UIControlStateSelected para iOS8
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
titleHighlightedColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateSelected]
[[UITabBar appearance] setTintColor:[UIColor colorWithRed:252/255.0 green:218/255.0 blue:49/255.0 alpha:1.0]];
tabBarItem1.image = [[UIImage imageNamed:@"home_icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
tabBarItem1.selectedImage = [UIImage imageNamed:@"home_icon_selected.png"];
[[UITabBar appearance] setBackgroundColor:[UIColor colorWithRed:15/255.0 green:85/255.0 blue:160/255.0 alpha:1.0]];
// Change the title color of tab bar items
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];
UIColor *titleHighlightedColor = [UIColor colorWithRed:252/255.0 green:218/255.0 blue:49/255.0 alpha:1.0];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
titleHighlightedColor, NSForegroundColorAttributeName,
nil] forState:UIControlStateHighlighted]