Comment puis-je changer la teinte d'un titre UITabBarItem non sélectionné et d'une image d'arrière-plan iOS 8?
La couleur par défaut pour un état non sélectionné est une couleur gris clair, mais elle n'apparaît pas sur mon fond UITabBar de teinte sombre
J'aimerais que mon état non sélectionné ait une couleur de [UIColor blackColor]
Dans mon application, le délégué a terminé le lancement avec des options: j'ai
UIImage *deselectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
UIImage *selectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic];
e.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Profile" image:deselectedE selectedImage:selectedE];
[[UITabBar appearance] setTintColor:[UIColor blackColor]];
Deviner!
Utilisez ceci pour changer la couleur du texte:
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor greenColor] }
forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor] }
forState:UIControlStateSelected];
Et assurez-vous que le mode de rendu d'image est réglé sur ORIGINAL pour les images
UIImage *deselectedImage = [[UIImage imageNamed:@"deselectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *selectedImage = [[UIImage imageNamed:@"selectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
Dans votre AppDelegate.m à l'intérieur de application didFinishLaunchingWithOptions:
utilisez le code suivant:
//unselected icon tint color
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor:[UIColor redColor]];
//selected tint color
[[UITabBar appearance] setTintColor:[UIColor greenColor]];
//text tint color
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
forState:UIControlStateNormal];
//background tint color
[[UITabBar appearance] setBarTintColor:[UIColor blueColor]];
Vous pouvez également le configurer directement dans Storyboard ... Vérifiez ma réponse ici: Comment définir la teinte non sélectionnée d'UITabBarItem, *** y compris les éléments du système *** (iOS7)
Si vous utilisez Storyboard, vous pouvez également définir les deux
Image
pourBar Item
etSelected Image
pourSelected Bar Item
pour obtenir une image non modifiée dans tabBar.
Alternativement, dans le catalogue Assets
, vous pouvez sélectionner Render As
: Original Image
dans les attributs de votre image (View
> Utilities
> Show Attributes Inspector
ou raccourci ⌥⌘4
(Option + Commande + 4))