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:
Capture UITabBar's default height:
fileprivate lazy var defaultTabBarHeight = { tabBar.frame.size.height }()
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 }