tab icon bar uitabbarcontroller uitabbar

uitabbarcontroller - icon - ¿Cambiando la altura de UITabBar en iOS7/8?



uitabbarcontroller swift 4 (8)

El desarrollador no posee el tabBar, el marco lo hace. Luchará contra ti para asegurarte de que el tabBar mantenga la misma altura. Si quiere evitar esto, puede crear su propia barra de herramientas y agregar restricciones de reproducción automática a su altura para forzarla a que permanezca en la altura que desee.

Estoy intentando cambiar la altura del stock UITabBar a 44px, similar a la altura de la barra de pestañas de Tweetbot. También he visto algunas otras aplicaciones hacer esto también.

Sin embargo, cuando trato de establecer la altura sigue siendo la misma

self.tabBar.frame.height = 40

¿No se nos permite cambiar la altura de la barra de pestañas? Y si es así, ¿cuál es una buena alternativa? usando una barra de herramientas?


En swift es incluso más simple que todas las soluciones sugeridas anteriormente al usar una extensión de UITabBar, no es necesario crear subclases:

extension UITabBar { override public func sizeThatFits(size: CGSize) -> CGSize { super.sizeThatFits(size) var sizeThatFits = super.sizeThatFits(size) sizeThatFits.height = <Insert your height here> return sizeThatFits } }


En tu UITabBarController

- (void)viewWillLayoutSubviews { CGRect tabFrame = self.tabBar.frame; tabFrame.size.height = 80; tabFrame.origin.y = self.view.frame.size.height - 80; self.tabBar.frame = tabFrame; }


La respuesta de SomeGuy anterior funcionó para mí. Aquí está la traducción rápida para cualquier persona que pueda necesitarla. Hice la altura cerca de lo que parece que usan las aplicaciones más populares.

class TabBar: UITabBar { override func sizeThatFits(size: CGSize) -> CGSize { var sizeThatFits = super.sizeThatFits(size) sizeThatFits.height = 38 return sizeThatFits } }


Parece que todo el mundo dice que esto no se puede hacer fácilmente

En su guión gráfico, asigne a su UITabBar un nombre de subclase personalizado, luego implemente la subclase con lo siguiente

Esto le dice a todas las vistas que usan la barra de pestañas que debe tener una cierta altura.

@implementation MyTabBar -(CGSize)sizeThatFits:(CGSize)size { CGSize sizeThatFits = [super sizeThatFits:size]; sizeThatFits.height = 100; return sizeThatFits; } @end


Si estás en iOS 11, lo siguiente te ayudará

-(CGSize)sizeThatFits:(CGSize)size { CGSize sizeThatFits = [super sizeThatFits:size]; sizeThatFits.height = 60; if (@available(iOS 11.0, *)) { UIWindow *window = UIApplication.sharedApplication.keyWindow; CGFloat bottomPadding = window.safeAreaInsets.bottom; sizeThatFits.height += bottomPadding; } return sizeThatFits; }

Básicamente es necesario cubrir un área segura, de lo contrario, la altura de la barra de pestañas en el iPhone X parece ser baja.



Para Swift 3 y xcode 8

extension UITabBar { override open func sizeThatFits(_ size: CGSize) -> CGSize { var sizeThatFits = super.sizeThatFits(size) sizeThatFits.height = 80 // adjust your size here return sizeThatFits } }