Approccio rapido 4
Sono stato in grado di fare il trucco implementando una funzione che accetta un TabBarItem e fa un po 'di formattazione.
Sposta leggermente l'immagine verso il basso per renderla più centrata e nasconde anche il testo della barra delle schede. Ha funzionato meglio rispetto all'impostazione del titolo su una stringa vuota, perché quando hai anche una NavigationBar, la TabBar riguadagna il titolo del viewController quando selezionata
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)
}
Ultima sintassi
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)
}
}
E usalo nella tua tabBar come:
tabBarItem.setImageOnly()