Question

Lorsque vous utilisez un UITabBarController, comment obtenir la taille de la barre d’onglet en bas? De même, comment savoir combien de place vous disposez dans la vue à onglets pour votre contenu? Je vois beaucoup d'exemples de personnes dimensionnant leurs vues enfant d'onglet dans [[UIScreen mainScreen] applicationFrame], ce qui ne peut pas être correct car la barre d'onglets occupe de l'espace au bas de l'écran.

Aussi, est-il possible de modifier la taille de la barre d'onglets?

Merci Ryan

Était-ce utile?

La solution

La raison pour laquelle vous pouvez utiliser applicationFrame est que UITabBarController redimensionne les vues de ses sous-contrôleurs. Par conséquent, tant que votre vue prend en charge le redimensionnement correctement, tout fonctionnera.

Vous pouvez obtenir la taille de la barre d'onglets en accédant à la propriété tabBar de votre contrôleur et en regardant son cadre. La taille totale de la barre d'onglets et de la zone de la vue peut être déterminée en consultant le cadre de la propriété view du contrôleur de la barre d'onglets. Une petite soustraction vous permettra d'obtenir le nombre que vous recherchez:

CGFloat myViewHeight = tabBarController.view  .size.height
                     - tabBarController.tabBar.size.height;

Autres conseils

Ancienne question, mais quand même:

Si vous ne chargez pas votre vue à partir d'une carte NIB, définissez les indicateurs de redimensionnement automatique dans votre loadView func; quelque chose comme ceci:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
                             UIViewAutoresizingFlexibleWidth;

Si vous le faites, vous pouvez utiliser [[UIScreen mainScreen] applicationFrame] pour spécifier le cadre de votre vue. il sera redimensionné automatiquement si une barre d'onglets est présente.

Si vous avez une carte NIB pour votre vue, le masque autoresizing est défini automatiquement par Interface Builder.

Markus

Si vous pouvez trouver comment redimensionner un UITabBar, vous pouvez redimensionner le UITabBar d'un UITabBarController. Vous pouvez accéder à l'objet en prenant

[[UITabBarController subviews] objectAtIndex:0]

Mais il est recommandé dans la documentation de ne pas accéder directement à l'objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top