Szybkie podejście 4
Udało mi się załatwić sprawę, implementując funkcję, która pobiera TabBarItem i formatuje ją.
Przesuwa obraz nieco w dół, aby był bardziej wyśrodkowany, a także ukrywa tekst paska kart. Działało lepiej niż tylko ustawienie tytułu na pusty ciąg, ponieważ gdy masz również NavigationBar, TabBar odzyskuje tytuł viewController po wybraniu
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)
}
Najnowsza składnia
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)
}
}
I po prostu użyj go w swoim tabBar jako:
tabBarItem.setImageOnly()