9
votes

Comment changer la largeur de l'uitabbaritem?

Comment changer la largeur de l'uitabbaritem?

J'ai un article avec le titre, qui est plus large que la largeur de l'élément par défaut. Comment puis-je le réparer?


0 commentaires

5 Réponses :


1
votes

Je viens de rechercher dans la documentation et je n'ai vu aucune méthode de réglage de la largeur de l'uitabbaritem.

Une solution possible serait de placer une vue dans le contrôleur de barre d'onglets pour charger un uitabbaritem personnalisé, c'est la largeur appropriée.


3 commentaires

Je sais que j'ai dit cela dans ma réponse, mais en plaçant une vue avec une largeur personnalisée à l'intérieur de la barre d'onglets (voir dans une vue, pas la barre d'onglets liée à une vue) Vous devriez pouvoir atteindre votre objectif. Je m'excuse si ma réponse originale était ambiguë


Si je place une vue sur la barre d'onglets, comment puis-je ajouter une barre d'onglets.


Lire ma réponse, il y a une solution de iOS7



3
votes

Vous pouvez modifier l'espacement (et la largeur) des éléments de barre d'onglets par sous-classement uitabbar et remplacer sa méthode mise en placeViews. Vous trouverez toutes les touches de barre d'onglets dans la matrice Self.Subviews. Leur classe est l'uitabbarbutton non public, mais ils héritent d'Uicontrol afin que vous puissiez identifier tous les boutons de barres d'onglets en vérifiant si elles sont une sorte de classe UICONTROL. Ensuite, tout ce dont vous avez besoin est de changer le cadre des boutons de barre d'onglets.


1 commentaires

Et comment attribuerez-vous la sous-classe uitabbar uitabbar sur mesure à un uitabbarcontroller ?



19
votes

solution pour iOS7 et versions supérieures:

Une nouvelle propriété a été introduite pour Uitabbar: itemWidth .

Définir l'itemWidth sur une valeur positive à utiliser comme largeur de l'onglet articles de bar quand ils sont positionnés comme un groupe centré (par opposition à remplir la barre d'onglets). Par défaut de 0 ou des valeurs inférieures à 0 seront interprété comme une largeur définie par le système. xxx

afin que vous puissiez le faire dans votre AppDelegate: xxx

Si vous souhaitez remplir l'ensemble de l'uitabbar: xxx

Comment remplir l'uitabbar


3 commentaires

merci pour la grande explication, y compris les captures d'écran


ça marche vraiment :) génial. J'ai passé 8 heures à obtenir la solution et cela résoudra mon problème.


Malheureusement, cette solution ne permet pas de personnaliser la largeur d'un élément spécifique, uniquement pour tous les articles.



1
votes

Trouvé une solution plus facile pour SWIFT si vous subglassez l'UITABBARCONTROLLER Cela permettra d'apporter une barre d'onglets uniformément

self.tabBar.itemPositioning = .fill


0 commentaires

0
votes

SWIFT 5 STRUT>

UITabBar().itemWidth = self.window!.frame.size.width/5


3 commentaires

L'avez-vous testé? Je ne pense pas que cela fonctionne pour ajuster la largeur des articles.


@Ashutoshshukla Oui, testé.


ça ne marche pas pour moi. Je crois que vous devez sous-classer la barre d'onglets.