web-dev-qa-db-fra.com

Changer la teinte de la barre d'onglets sur iOS 7

Existe-t-il un moyen de changer la teinte d'une barre d'onglets sous iOS 7, passant du blanc par défaut avec des icônes bleues à une autre teinte avec des boutons de couleur différente?

75
Jake Chasan

Essayez le ci-dessous:

[[UITabBar appearance] setTintColor:[UIColor redColor]];
[[UITabBar appearance] setBarTintColor:[UIColor yellowColor]];

Pour teinter les boutons non actifs, insérez le code ci-dessous dans votre VC viewDidLoad:

UITabBarItem *tabBarItem = [yourTabBarController.tabBar.items objectAtIndex:0];

UIImage *unselectedImage = [UIImage imageNamed:@"icon-unselected"];
UIImage *selectedImage = [UIImage imageNamed:@"icon-selected"];

[tabBarItem setImage: [unselectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[tabBarItem setSelectedImage: selectedImage];

Vous devez faire cela pour tous les tabBarItems, et oui je sais que c'est moche et j'espère y avoir sera une façon plus propre de le faire.

Swift:

UITabBar.appearance().tintColor = UIColor.red

tabBarItem.image = UIImage(named: "unselected")?.withRenderingMode(.alwaysOriginal)
tabBarItem.selectedImage = UIImage(named: "selected")?.withRenderingMode(.alwaysOriginal)
207
null

Il y a un moyen beaucoup plus facile de faire cela.

Il suffit d'ouvrir l'inspecteur de fichier et de sélectionner une "teinte globale".

Vous pouvez également définir la couleur de teinte d'une application dans Interface Builder. Le menu Global Tint de la section Interface Builder Document de l'inspecteur de fichier vous permet d'ouvrir la fenêtre Couleurs ou de choisir une couleur spécifique.

Regarde aussi:

https://developer.Apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html

22
herdi

iOS 7.1.1

Si quelqu'un doit utiliser globalement la teinte:

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

Dans didFinishLaunchingWithOptions de AppDelegate.

De plus, le code ci-dessous ne changera que la couleur de la teinte de la barre d'onglets dans toute méthode viewDidLoad:

[self.tabBarController.tabBar setTintColor:[UIColor redColor]];
16

Dans le délégué de l'application didFinishLaunchingWithOptions:

window.tintColor = [UIColor purpleColor];

définit la couleur de teinte de manière globale pour l'application.

9
Sofi Software LLC

Ecrivez ceci dans votre classe View Controller de votre barre d'onglets:

// Generate a black tab bar
self.tabBarController.tabBar.barTintColor = [UIColor blackColor];

// Set the selected icons and text tint color
self.tabBarController.tabBar.tintColor = [UIColor orangeColor];
5
Ruchi

Ce qui a finalement fonctionné pour moi a été:

[self.tabBar setTintColor:[UIColor redColor]];
[self.tabBar setBarTintColor:[UIColor yellowColor]];

Dans " Inspecteur d'attributs" de votre Contrôleur de barre d'onglets dans Interface Builder make Assurez-vous que votre barre inférieure est définie sur Barre de tabulation Opaque:

Choose Opaque

Maintenant, allez à votre AppDelegate.m fichier. Trouver:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Et ajoutez ensuite ce code entre les accolades pour modifier les couleurs des boutons de la barre d'onglets et de l'arrière-plan de la barre d'onglets:

///----------------SET TAB BAR COLOR------------------------//

//--------------FOR TAB BAR BUTTON COLOR---------------//
[[UITabBar appearance] setTintColor:[UIColor greenColor]];

//-------------FOR TAB BAR BACKGROUND COLOR------------//
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
1
user4203956

Après avoir essayé toutes les solutions suggérées, je n’ai trouvé aucune aide très utile.

J'ai finalement essayé ce qui suit:

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

qui a parfaitement fonctionné.

J'ai fourni une seule image pour chaque TabBarItem. Vous n'avez même pas besoin d'une image sélectionnée.

Je l'ai même utilisé dans Child-ViewControllers pour définir différents TintColors:

UIColor *theColorYouWish = ...;
if ([[self.parentViewController class] isSubclassOfClass:[UITabBarController class]]){
    UITabBarController *tbc = (UITabBarController *) self.parentViewController;
    [tbc.tabBar setTintColor:theColorYouWish];
}
0
dfinki