Change UITabBar height Change UITabBar height ios ios

Change UITabBar height


I faced this issue and I was able to solve it.

You have to add following code to your subclass of UITabBarController class.

const CGFloat kBarHeight = 80;- (void)viewWillLayoutSubviews {    [super viewWillLayoutSubviews];    CGRect tabFrame = self.tabBar.frame; //self.TabBar is IBOutlet of your TabBar    tabFrame.size.height = kBarHeight;    tabFrame.origin.y = self.view.frame.size.height - kBarHeight;    self.tabBar.frame = tabFrame;}

Swift:

override func viewWillLayoutSubviews() {    super.viewWillLayoutSubviews()    tabBar.frame.size.height = kBarHeight    tabBar.frame.origin.y = view.frame.height - kBarHeight}


For iOS 8.2, Xcode 6.2 Swift language:

Create a "DNMainTabVC.swift" (DeveloperNameMainTabViewController.swift file) for your UITabBarController (of type UITabBarController) and connect it to your storyboard VC.

Add the following lines:

override func viewWillLayoutSubviews() {    var tabFrame = self.tabBar.frame    // - 40 is editable , the default value is 49 px, below lowers the tabbar and above increases the tab bar size    tabFrame.size.height = 40    tabFrame.origin.y = self.view.frame.size.height - 40    self.tabBar.frame = tabFrame}

This worked for me.


Swift3.0, Swift 4.0 compatible

Pre-iPhone X default tab bar height: 49pt

iPhone X default tab bar height: 83pt

A universal solution supporting every iOS device including iPhone X screen size would look like this:

  1. Capture UITabBar's default height:

    fileprivate lazy var defaultTabBarHeight = { tabBar.frame.size.height }()
  2. Adjust UITabBar's height:

        override func viewWillLayoutSubviews() {        super.viewWillLayoutSubviews()        let newTabBarHeight = defaultTabBarHeight + 16.0        var newFrame = tabBar.frame        newFrame.size.height = newTabBarHeight        newFrame.origin.y = view.frame.size.height - newTabBarHeight        tabBar.frame = newFrame    }