Définition de l'image sélectionnée dans le controller de barre d'tabs avec Storyboard

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.

Définition de l'image sélectionnée de Tabbar à l'aide du storyboard

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.

entrez la description de l'image 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

entrez la description de l'image ici

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 🙂 entrez la description de l'image ici

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:

  • Aller à Image assets -> Sélectionner l'image
  • Sélectionnez Rendu AS: "Image originale"

entrez la description de l'image ici

  • Ensuite, allez dans le storyboard -> Sélectionnez l'élément Tabbar
  • Sous Inspecteurs d'atsortingbut, définissez "Image sélectionnée" et "Image" comme indiqué dans la capture d'écran suivante, c'est-à-dire:

entrez la description de l'image ici

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.

Imprimer l'élément de la barre d'onglets

Ne pas oublier que cette image devrait avoir cette taille:

  • @ 1x: environ 25 x 25
  • @ 2x: environ 50 x 50
  • @ 3x: environ 75 x 75