Normally on each tab of a UITabBar
you have a small image and a title naming the tab. The image is positioned/centred towards the top of the tab to accommodate the title underneath. My question is: if you want to have a tabBar with just an image and no title is there a way to move the image down so it centers better within the tab?
I am using (see below) currently:
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
but would prefer to use to larger image with no title, at the moment if I make the image bigger than about 70pixels@2x it starts edging off the top of the UITabBar
whilst leaving a lot of unused space at the bottom.
Try adjusting
tabBarItem
'simageInsets
(for moving the icon image) and setting the controllers title to nil (so no title is displayed). Put something like this to-init
or-viewDidLoad
method in view controller:Objective-C
Swift
UITabBarItem
is a subclass ofUIBarItem
which hasUIEdgeInsets imageInsets
property. Play a little with the insets until it looks good (depending on your tabbar icon images)You can do it via storyboard too. Select your tabbaritem, go to size inspector and assign the appropriate insets.
*Demonstrated on Xcode, Version 7.3.1 (7D1014)
This worked for me
Swift 4
For iOS 11 you need to override TraitCollection method apart from setting ImageInsets. Please add the method in your subclassed UITabBarController class
If you're using Xamarin, this works:
SWIFT 3.0
You can set image lnsets, set top,left,bottom and right according desing.