web-dev-qa-db-fra.com

Comment obtenir la hauteur de la barre d'onglets par programmation?

J'ai découvert que la hauteur d'un UITabBar est de 49 px (ou 50 px, selon la source).

Parce que je n'aime pas utiliser trop de valeurs codées en dur dans mon code, je me demandais s'il était possible de récupérer la hauteur de la barre de tabulation par programme.

Sincères amitiés,
Niels R.

PS: La raison pour laquelle je pose la question est parce que j'ai un contrôleur de vue (avec une vue de liste contenant des champs de texte) qui est soit simplement poussé par le contrôleur de navigation (pushViewController) ou présenté comme un modal (presentModalViewController). Dès que le clavier apparaît, la taille de la vue est réduite, mais je dois tenir compte du fait que la barre d'onglets n'est visible que lorsque le contrôleur de vue est poussé et n'est pas présenté comme un modal.

51
Niels R.

Je ne comprends pas totalement votre P.S., mais vous pouvez faire:

tabBarController?.tabBar.frame.size.height
131
Mason

Si vous souhaitez obtenir la hauteur standard pour le contrôle UITabBar, vous pouvez faire:

    UITabBarController *tabBarController = [UITabBarController new];
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
14
Federico Jordan

plus jolie

CGRectGetHeight(self.tabBarController.tabBar.frame)
10
Nick Ginanto

vérifiez cela dans votre vc

bottomLayoutGuide.length
3
Adam Smaka

Dans Swift 3, vous pouvez récupérer la hauteur du UITabBar avec ce code ci-dessous.

self.tabBarController!.tabBar.frame.size.height

Qui renverra une valeur CGFloat de la hauteur

3

Si un objet est basé sur UIView (qui sont la plupart des éléments visuels de la bibliothèque), vous pouvez obtenir la taille du "cadre" ivar.

1
Hack Saw

UITabBar est hérité de UIView tant que vous avez accès à votre instance UITabBar, vous pouvez accéder et modifier le cadre de UITabBar,

CGRect myRect = myTabBar.frame;
1
Jhaliya