Approche Swift 4
J'ai pu faire l'astuce en implémentant une fonction qui prend un TabBarItem et le met en forme.
Déplace l'image un peu vers le bas pour la rendre plus centrée et masque également le texte de la barre d'onglets. Fonctionne mieux que de simplement définir son titre sur une chaîne vide, car lorsque vous avez également une barre de navigation, la barre de tabulation récupère le titre de la vueContrôleur lorsqu'il est sélectionné
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)
}
Dernière syntaxe
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)
}
}
Et utilisez-le simplement dans votre tabBar comme:
tabBarItem.setImageOnly()