Je souhaite que les éléments de ma barre d'onglets soient roses lorsqu'ils sont sélectionnés au lieu du bleu par défaut.
Comment puis-je accomplir cela en utilisant l'éditeur de storyboard dans Xcode 6?
Voici mes paramètres actuels qui ne fonctionnent pas, le fond bleu fonctionne mais le rose ne fonctionne pas:
Réponses:
Ajoutez l'attribut Runtime Color nommé "tintColor" depuis StoryBoard. Cela fonctionne ( pour Xcode 8 et supérieur ).
si vous voulez une couleur non sélectionnée .. vous pouvez
unselectedItemTintColor
également en ajouter .la source
UITabBarItem
, sur leUINavigationController
connecté à ma tabBar et cela fonctionne parfaitement. Le tout sans écrire de code, ce qui est génial, car je réutilise une classe VC trois fois. Merci!Cette solution élégante fonctionne parfaitement sur SWIFT 3.0 , SWIFT 4.2 et SWIFT 5.1 :
Sur le storyboard:
Edit: Travailler avec Xcode 8/10, pour iOS 10/12 et supérieur .
la source
Dans Swift, en utilisant xcode 7 (et version ultérieure), vous pouvez ajouter les éléments suivants à votre fichier AppDelegate.swift:
Voici à quoi ressemble la méthode complète:
Dans l'exemple ci-dessus, mon article sera blanc. Le "/255.0" est nécessaire car il attend une valeur de 0 à 1. Pour le blanc, j'aurais pu juste utiliser 1. Mais pour une autre couleur, vous utiliserez probablement des valeurs RVB.
la source
Sur
Xcode8
j'ai changé leImageTint
du storyboard et cela fonctionne bien.Le résultat:
la source
Swift 3 | Xcode 10
Si vous souhaitez que tous les éléments de la barre d'onglets aient la même couleur (sélectionnés et non sélectionnés) ...
Étape 1
Assurez-vous que vos ressources d'image sont configurées sur Render As = Template Image . Cela leur permet d'hériter de la couleur.
Étape 2
Utilisez l'éditeur de storyboard pour modifier les paramètres de la barre d'onglets comme suit:
Étape 3
Les étapes 1 et 2 changeront la couleur de l'icône sélectionnée. Si vous souhaitez toujours changer la couleur des éléments non sélectionnés, vous devez le faire dans le code. Je n'ai pas trouvé de moyen de le faire via l'éditeur de storyboard.
Créer une classe de contrôleur de barre d'onglets personnalisée ...
... et attribuez la classe personnalisée à votre contrôleur de scène de la barre d'onglets.
Si vous trouvez comment changer la couleur de l'icône non sélectionnée via l'éditeur de storyboard, veuillez m'en informer. Merci!
la source
self.tabBar.unselectedItemTintColor = UIColor.white
self.tabBar.tintColor = #colorLiteral(red: 0.2, green: 0.7333333333, blue: 0.3450980392, alpha: 1)
Travaille pour moiplacez ce code dans le viewDidLoad du contrôleur de vue dont vous souhaitez changer la couleur
la source
Vous pouvez également définir la couleur de teinte de la barre d'image sélectionnée par chemin de clé:
J'espère que ceci vous aidera!! Merci
la source
XCode 8.2, iOS 10, Swift 3: il y a maintenant un
unselectedItemTintColor
attribut pourtabBar
:la source
Vous pouvez changer les couleurs UITabBarItem par storyboard mais si vous voulez changer les couleurs par code, c'est très simple:
// Utilisez ceci pour changer la couleur de la barre sélectionnée
// Ceci pour modifier la barre non sélectionnée (iOS 10)
// Et cette ligne pour changer la couleur de toute la barre d'onglets
la source
D'une manière ou d'une autre, nous ne sommes pas en mesure de modifier la couleur de teinte de l'élément sélectionné dans la barre d'onglets en utilisant uniquement le storyboard, c'est pourquoi j'ai ajouté le code ci-dessous dans mon ViewDidLoad, j'espère que cela vous aidera.
la source
Ajoutez ce code dans votre fonction délégué d'application -did_finish_launching_with_options
mettre le RVB de la couleur souhaitée
la source
Voici la solution dans Swift 3 qui fonctionne sous iOS 10:
Tout d'abord, vous créez votre propre sous-classe de contrôleur de barre d'onglets et l'ajoutez à votre contrôleur d'onglets dans votre storyboard. Dans la
viewDidLoad()
méthode, vous pouvez ensuite personnaliser la barre d'onglets. Il faut préciser ici que l'tintColor
attribut detabBar
représente la couleur de l'élément sélectionné et non la couleur de l'élément non sélectionné! Afin de changer la couleur des éléments non sélectionnés, je recommande de parcourir chaque élément en boucle et d'utiliser les couleurs d'origine de vos images, afin qu'elles ne soient pas rendues automatiquement en gris.Le seul inconvénient de cette approche est que les images de vos articles doivent déjà avoir la couleur souhaitée que vous visez.
la source
Cette meilleure façon est de changer
Image Tint
de storyboardla source
Vous pouvez sous-classer le
UITabBarController
et remplacer celui par lui dans le storyboard. Dans votreviewDidLoad
implémentation de sous-classe, appelez ceci:la source
'UITabBar' does not have a member named 'setSelectedImageTintColor'
self.tabBar.setSelectedImageTintColor = UIColor.greenColor
ne sais pas si c'est correct ou nontintColor
pas le casselectedImageTintColor
, btwselectedImageTintColor
est obsolète dans iOS 8.