¿Cómo obtener la altura de la barra de pestañas mediante programación?


He descubierto que la altura de un UITabBar es 49px (o 50px, dependiendo de la fuente).

Debido a que no me gusta usar demasiados valores codificados en mi código, me preguntaba si es posible recuperar la altura de la barra de pestañas mediante programación.

Saludos cordiales,
Niels R.

PD: La razón por la que estoy preguntando es porque tengo un controlador de vista (con una vista de lista que contiene campos de texto) que es simplemente empujado por el navigationcontroller (pushViewController) o presentado como modal (presentModalViewController). Tan pronto como aparece el teclado, el tamaño de la vista se reduce, pero tengo que tener en cuenta que la barra de pestañas solo es visible cuando se empuja el controlador de vista y no se presenta como un modal.

Author: shim, 2011-03-22

7 answers

No entiendo totalmente su P.d., pero usted puede hacer:

tabBarController?.tabBar.frame.size.height
 125
Author: Mason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-17 22:04:51

Si desea obtener la altura estándar para el control UITabBar, puede hacer:

    UITabBarController *tabBarController = [UITabBarController new];
    CGFloat tabBarHeight = tabBarController.tabBar.frame.size.height;
 13
Author: Federico Jordan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-16 18:40:36

Más bonita

CGRectGetHeight(self.tabBarController.tabBar.frame)
 10
Author: Nick Ginanto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-19 10:48:52

En Swift 3, puede recuperar la altura del UITabBar con este código a continuación.

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

Que devolverá un CGFloat valor de la altura

 3
Author: Cyril Ivar Garcia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-01 04:41:10

Compruebe esto en su cv

bottomLayoutGuide.length
 3
Author: Adam Smaka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-09 12:08:46

Si un objeto se basa en UIView (que son la mayoría de los elementos visuales de la biblioteca), puede obtener el tamaño del "marco"de ivar.

 1
Author: Hack Saw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-22 07:46:59

UITabBar se hereda de UIView siempre que tenga acceso a su instancia de UITabBar, puede acceder y modificar el marco de UITabBar,

CGRect myRect = myTabBar.frame;
 1
Author: Jhaliya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-12 05:20:19