2 votes

Comment ajouter le bouton "Plus" à la barre d'onglets ?

Mon application iPhone possède un contrôleur de barre d'onglets au bas de la vue - et pour le moment, j'ai trois boutons dessus. Cependant, je veux en ajouter d'autres, mais pour ce faire, je dois transformer le dernier des trois boutons en un bouton "Plus...", car sinon le texte des autres boutons se chevauchent.

Je sais que si vous avez plus de 5 boutons dans la barre d'onglets, un bouton supplémentaire est automatiquement créé, mais existe-t-il un moyen de l'invoquer manuellement avec les capacités d'édition ?

Merci.

6voto

gerry3 Points 15696

Vous n'avez pas à créer manuellement un bouton "More...". Il suffit d'ajouter tous les contrôleurs de vue dont vous avez besoin au contrôleur de la barre d'onglets, qui se chargera du reste.

4voto

vidya Points 31

Vous pouvez définir le dernier bouton de la barre comme un bouton "Plus" même s'il n'y a que trois onglets. Le code d'initialisation pour cet élément de la barre d'onglets serait le suivant :

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMore tag:0];

2voto

lemnar Points 3108

Faites des noms plus courts, ou n'utilisez pas de barre de tabulation. Vous aurez cinq ou six contrôleurs de vues, mais seuls deux d'entre eux seront accessibles à un moment donné ? Si deux tiers de vos vues seront dans la liste "plus", pourquoi ne pas simplement les afficher toutes dans une liste ? Vous pourriez ainsi récupérer l'espace en bas de l'écran et aucune vue ne nécessiterait de clics supplémentaires.

Si vous voulez vraiment faire cela, vous devriez écrire un remplacement pour UITabBarController . J'ai regardé dans UIKit et j'ai même essayé de faire un swizz -_viewControllersInTabBar mais la limite de cinq boutons est supposée à plusieurs endroits dans le texte de la loi. UITabBarController donc il vaut mieux que vous écriviez le vôtre.

Vous avez peut-être remarqué que certaines applications iPad, comme YouTube, comportent plus de cinq éléments dans la barre d'onglets : alt text
(source : <a href="http://images.apple.com/ipad/features/images/overview_youtube_20100225.jpg" rel="nofollow noreferrer">apple.com </a>)

Comment est-ce possible, si UITabBarController est tellement obsédé par le fait de ne pas avoir plus de cinq contrôleurs de vue ? Peut-être qu'Apple a ajouté une sorte de méthode privée à UITabBarController dans le SDK 3.2 qui pourrait vous aider. Peut-être que cela s'appelle quelque chose comme -_setMaximumNumberOfItems: et peut-être qu'il fixe un NSUInteger variable d'instance appelée _maxItems . Si Apple ajoutait une telle méthode privée, il faudrait encore attendre la sortie d'une version de la 3.2 compatible avec l'iPhone, et même alors, l'utilisation de méthodes privées est mauvaise.

Changez le nom de vos onglets. Ce n'est pas un gros problème.

0voto

AlsonToh-SG Points 92

Il n'est donc même pas possible de faire une application avec une barre d'onglets à 6 vues ?

même si le nom de chacun est super court

disons quelque chose comme ça

rouge rouge rouge rouge rouge

au lieu de jaune jaune jaune jaune jaune

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X