7
votes

Colles d'icône de barre d'onglets personnalisée

IM Utilisez actuellement Xcode 5 pour développer une application orientée par liste. J'ai une teinte personnalisée pour la barre d'onglets, des images personnalisées pour les icônes d'onglets, la teinte personnalisée pour les images d'icône de la barre d'onglets lorsque c'est sélectionné, mais je ne trouve pas comment personnaliser les images d'icône 'TINT pour le moment où elle n'est pas sélectionnée. À l'heure actuelle, c'est juste le gris par défaut que vous pouvez à peine voir contrairement à ma barre d'onglets verts. Je veux faire les images d'icônes de barre d'onglets et noms blancs.

Quelqu'un peut-il savoir comment définir la teinte de la barre d'icônes de la barre d'onglets dans Xcode 5?


0 commentaires

7 Réponses :


17
votes

Vous pouvez essayer cela pour teinter l'icône sélectionnée: xxx

et ceci pour teinter l'icône non active: xxx


5 commentaires

Notez que SetFinishesElementImageImage: WithfinisheisheduneyecteImage est obsolète dans iOS 7.


Matthew Si son déprécié dans iOS 7 existe une autre façon d'y aller ou est-ce juste parce que Apple veut garder la norme d'icônes grises par défaut?


@ user2792129 - Oui, je viens de me prendre quelques minutes pour obtenir ma réponse dactylographiée dans


Hey, que puis-je faire si je ne veux pas utiliser le titre..its déjà dans l'image. Je souhaite utiliser l'espace de titre pour adapter l'icône au centre de la barre d'onglets.


La voie mise à jour est juste [[[[d'apparence Uitabbar] SetintColor: [Uicolor Whitecolor]];



26
votes

Vous devez définir le mode de rendu pour chaque onglet (non sélectionné) sur UIIMAGERENDERINGMODABONDIX . Donc, dans votre délégué de l'application, obtenez une référence à la barre d'onglets, puis itérer sur chaque barre d'onglets, ajustant les modes d'image.

Il y a probablement un meilleur moyen d'obtenir une référence à la barre d'onglets, mais j'ai fait ce qui suit : xxx

puis le réglage de l'image peut être effectué comme suit: xxx


4 commentaires

Merci Matthew. Je mets ce code dans mon délégué de l'application .m et renvoyé un problème qui a déclaré "la configuration non prise en charge" "un style simple non pris en charge dans un élément de navigation, de la carte principale."


Mon code suppose qu'un contrôleur de barre d'onglets est le contrôleur d'affichage initial du storyboard. Si votre application est configurée différemment, cela peut être la source du problème.


Cela fonctionne mais seulement pour l'une des images. Fondamentalement, j'ai une icône non sélectionnée et sélectionnée. Cette astuce a fait un travail non sélectionné mais sélectionné n'est toujours qu'un gâchis bleu.


@Halsafar C'est parce que vous définissez uniquement le mode de rendu de la base image . Faites de même pour le sélectionImage bien que vous souhaitiez la définir sur une image différente, vous ne pouvez pas indiquer la différence entre la sélection et non.



5
votes

Essayez de cette façon..Il a fonctionné pour moi

​​dans l'application délégué xxx

exécuter et go


0 commentaires

4
votes

Réglage de la barre d'onglets personnalisée avec une image sélectionnée et non sélectionnée. Aussi, avoir la position de tabbaritem Image Incartements dans Centre

UITabBar *tabBar = self.tabBarController.tabBar;

UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];

[item0 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue.png"]  withFinishedUnselectedImage:[UIImage imageNamed:@"iconGray.png"] ];
[item1 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-2.png"]];
[item2 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-3.png"]];
[item3 setFinishedSelectedImage:[UIImage imageNamed:@"iconBlue4.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"icon-4.png"]];

item0.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item1.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item2.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
item3.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);


0 commentaires

3
votes

car SetFinishedImageImage: WithfinisheisheisheishedImageImage est obsolète, j'ai utilisé une version altérée de la réponse de RAM S en remplaçant: xxx pré>

avec: p>

[item0 setImage:[[UIImage imageNamed:@"iconGray.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
[item0 setSelectedImage:[[UIImage imageNamed:@"iconBlue.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];


0 commentaires

5
votes

Si vous avez la barre d'onglets dans Visual Editor, vous pouvez le faire ici. Sélectionnez Barre d'onglets et dans «Attributs d'exécution définis par l'utilisateur» Ajouter un attribut: Chemin de clé: SynchronisationImagetIncolor Type: Couleur Valeur:


1 commentaires

Comme un charme. Y a-t-il une belle magie pour les icônes non sélectionnées également?



6
votes

Vous pouvez le faire purement du scénario sans écrire de code en ajoutant un "attribut d'exécution défini par l'utilisateur":

  1. Sélectionnez votre uitabviewController dans le storyboard
  2. Ouvrez le "Contour du document" et assurez-vous de sélectionner la vue "Barre d'onglets" dans la scène.
  3. montre l'inspecteur "d'identité". Vous devriez voir une section pour "Attributs d'exécution définis par l'utilisateur"
  4. Ajoutez ce qui suit:
    • Chemin de clé: TintColor
    • Type: Couleur
    • Valeur: Sélectionnez la couleur souhaitée.

4 commentaires

Bon à savoir. Mais les attributs d'exécution définis par l'utilisateur sont un cauchemar de débogage absolu.


Quoi d'autre que Tintcolor pouvez-vous taper dans le chemin de la clé?


@RasmusBidstrup, toutes les propriétés pertinentes de l'élément IB sélectionné. Dans notre cas, l'Uitabbar. Alors allez à Apple Doc et lisez la documentation Uitabbar.


Et corrigez-moi si je me trompe, mais cela définira la couleur lorsque vous sélectionnez l'image. Il veut changer la couleur grise par défaut de l'élément et non la couleur sélectionnée?