Swift 4 подход
Мне удалось проделать трюк, реализовав функцию, которая принимает TabBarItem и выполняет для него некоторое форматирование.
Сдвигает изображение немного вниз, чтобы сделать его более центрированным, а также скрывает текст панели вкладок. Работает лучше, чем просто установка его заголовка на пустую строку, потому что, когда у вас также есть NavigationBar, TabBar восстанавливает заголовок viewController при выборе
func formatTabBarItem(tabBarItem: UITabBarItem){
tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
tabBarItem.setTitleTextAttributes([NSAttributedStringKey.foregroundColor:UIColor.clear], for: .selected)
tabBarItem.setTitleTextAttributes([NSAttributedStringKey.foregroundColor:UIColor.clear], for: .normal)
}
Последний синтаксис
extension UITabBarItem {
func setImageOnly(){
imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.clear], for: .selected)
setTitleTextAttributes([NSAttributedString.Key.foregroundColor:UIColor.clear], for: .normal)
}
}
И просто используйте его в tabBar как:
tabBarItem.setImageOnly()