J'utilise Storyboarding et j'ai un controller de barre d'tabs avec cinq tabs. Dans le storyboard, je peux définir l'image pour l'élément de la barre d'tabs. Apple docs suggère d'avoir deux icons pour chaque élément de la barre d'tabs – un pour sélectionné et un pour l'état non sélectionné.
Je ne suis pas capable de comprendre comment je peux faire cela en utilisant le storyboard.
Vous pouvez utiliser le storyboard pour définir l'image sélectionnée de la barre d'tabs. J'ai essayé et ça a marché pour moi. Sélectionnez UITabbarItem et ajoutez un atsortingbut d'exécution 'selectedImage', select Type comme 'Image' et donnez le nom de votre image comme valeur.
J'utilise XCode 6.0 et ma cible de deployment minimale est iOS 8.0.
Oui, cela ne peut pas être fait en utilisant des storyboards – le code doit être écrit.
Dans la méthode viewDidLoad
, nous pouvons écrire le code suivant –
UITabBar *tabBar = self.tabBar; UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // whichever tab-item UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected-image.png"]; [targetTabBarItem setSelectedImage:selectedIcon];
Vous pouvez maintenant le faire facilement dans le storyboard. Sur chaque tabviewcontroller que vous possédez, il doit contenir un élément de barre d'tabs dans la hiérarchie (ressemble à une petite écanvas bleue), cliquez dessus et les parameters sur la droite devraient ressembler à l'image ci-dessous. Le titre et l'image de la barre d'tabs peuvent être modifiés ici.
Je pense que le moyen le plus simple est de définir l'image de l'inspecteur. vous avez un champ appelé Barre -> Image , et il est là où vous devez définir le nom de l'image. Attention, ne pas confondre avec l' élément de la barre d'tabs -> Image sélectionnée
Dans XCode 8 et au-dessus, vous pouvez simplement le faire dans les ressources Image, select simplement l'image et select Rendu comme "Image originale". (S'il vous plaît vérifier l'image ci-joint) .. Amusez-vous 🙂
L'icône doit être définie dans le controller de vue correspondant. En faisant cela, vous êtes libre de réorganiser l'ordre des controllers de vue dans le controller de l'onglet principal de storyboards sans avoir à changer le code ( objectAtIndex:0
) pour chaque icône.
Placez la ligne suivante dans la méthode viewDidLoad
:
if (self.navigationController.viewControllers.count < 2) self.navigationController.tabBarItem.selectedImage = [UIImage imageNamed:@"image-selected.png"];
La condition if
s'assure que le button n'est modifié que pour le controller de vue le plus haut. Cela est nécessaire lorsque vous réutilisez des controllers de vue dans une hiérarchie de navigation en tant que controllers de vue secondaire.
Voici une solution complète pour l'image sélectionnée / non sélectionnée dans Tabbar For XCode> = 8:
Dans le nouveau Xcode 8, vous pouvez faire dans Storyboard sans avoir besoin de définir les attributes d'exécution comme cela est suggéré dans la réponse haute pointée.
Ne pas oublier que cette image devrait avoir cette taille: