web-dev-qa-db-fra.com

Changer la teinte du titre de l'élément UITabBarController non sélectionné et de l'image d'arrière-plan

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]];
17
SleepsOnNewspapers

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];
47
SleepsOnNewspapers

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]];
22
TheSD

Vous pouvez également rendre l'image comme originale à partir de l'inspecteur d'attributs du fichier d'actif sans écrire de code

enter image description here

14
Bhavuk Jain

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 pour Bar Item et Selected Image pour Selected 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))

0
Hugues BR