UITabBarItem title position

If you want to move up simply set vertical offset to negative value

UITabBarItem* it = [[self.tabController.tabBar items] objectAtIndex:0];
it.titlePositionAdjustment = UIOffsetMake(0.0, -2.0);

You don't have to use proxy as it is done here UITabBarItem title in centre of title, not at bottom.You can define offset per item.


If you want to update all of them:

tabBar.items?.forEach({ $0.titlePositionAdjustment = UIOffset(horizontal: 0.0, vertical: -2.0) })

Why don't you just have an empty title property for your view controller and add the title to your custom images for the tab?

You can do this (in iOS 5.0):

UIImage* iconSelected = [UIImage imageNamed:@"tabIconSelected.png"];
UIImage* iconNotSelected = [UIImage imageNamed:@"tabIconNotSelected.png"];
UITabBarItem *updatesListItem = [[UITabBarItem alloc] initWithTitle:@"" image:iconSelected tag:0];
[updatesListItem setFinishedSelectedImage:iconSelected withFinishedUnselectedImage:iconNotSelected];
[navigationController setTabBarItem:updatesListItem];

where tabIconSelected.png and tabIconNotSelected.png both contain the title text for the tab.

I have written a brief article "Add some colour to your UITabBar icons" which explains how to use custom images with tabs.

Hope this helps.


Swift version for the lazy ones :)

UITabBarItem.appearance().titlePositionAdjustment = UIOffsetMake(0.0, -4.0)