web-dev-qa-db-fra.com

Un moyen vraiment cool de créer une application UITabBar pour iPhone personnalisée?

Je fais beaucoup de recherches récemment sur la façon d'obtenir une apparence différente avec de beaux effets UITabBar sur mon application iPhone, mais malheureusement, je ne trouve que des choses sur la façon de remplacer la couleur d'arrière-plan, etc.

Eh bien, j'ai vérifié cette application appelée Momento qui est assez cool et présente une tabBar très lisse:

Momento's UITabBar

Donc, il y a quelques éléments ici, je voudrais vous demander si vous pouvez m'aider en me donnant les bonnes directions sur la façon d'obtenir un effet similaire :)

  • Flèche au-dessus des éléments: comme vous pouvez le voir, cette application a cette flèche animée qui passe au-dessus de l'élément sélectionné avec une animation très fluide.

  • Sélectionné Indiqué de l'image de l'élément n'est pas si bleu - ish celui par défaut ni l'état par défaut qui s'affiche dans un autre nuance de version brune et grise.

  • Séparateurs Nice Items avec des lignes verticales biseautées.

  • image d'arrière-plan différente pour la tabBar

  • hauteur différente pour la tabBar

À ce stade, après quelques recherches, je suis en mesure de définir la hauteur et l'image d'arrière-plan en sous-classant UITabBarController mais je ne sais toujours pas comment accomplir les autres éléments, en particulier le premier lié à l'effet de flèche Nice.

Comment puis-je faire cela? Veuillez clarifier ce qui peut ou ne peut pas être fait en sous-classant le UITabBarController et spécialement si cela peut être fait dans Interface Builder.

27
zanona

Découvrez iDevReceipes , ils ont une solution assez simple et belle. Peut ne pas correspondre à tout ce que vous voulez, mais c'est un bon point de départ

17
LordT

Il y a un projet sur github appelé BCTabBarController qui vise à imiter la barre d'onglets utilisée dans Twitter pour iPhone. Il contient certaines des choses que vous recherchez et devrait donner un excellent point de départ.

15
Dave DeLong

Les deux sont de bonnes réponses, mais les deux bibliothèques ont des problèmes: BCTabBarController ne sait pas comment créer la version en surbrillance "bleue" d'une icône de barre d'onglets; et iDevRecipies n'envoie pas d'événements aux contrôleurs de vue enfants ni redimensionne la barre de navigation lors de la rotation.

Soyez averti: les barres de navigation personnalisées sont beaucoup de débogage par essais et erreurs (comme je l'ai trouvé).

5
esilver

Il vous suffit d'utiliser une vue UIV avec la largeur et la hauteur de la barre de tabulations.Ajouter une image d'arrière-plan personnalisée et des boutons personnalisés sur la vue.Réglez le propriétaire du fichier de la vue sur AppDelegate.Maintenant, vous pouvez simplement connecter les IBActions avec les boutons.La vue personnalisée peut être placée sur la barre d'onglets par addSubView à la vue du contrôleur TabBar. Vous pouvez basculer entre les contrôleurs de vue en utilisant la méthode setSelectedIndex de tableviewcontroller dans l'action du bouton.

2
Sreekanth