2017-08-16 4 views
1

J'ai un UITabBar avec 3 éléments.Aligner l'image UITabBarItem à gauche et à droite

Chaque article a juste une image (sans texte).

Ce qui se passe maintenant, c'est que toutes les trois images sont présentées au centre de chaque `tabBarItem.

Ce que je veux accomplir est que l'image gauche de UITabBarItem sera alignée vers la gauche. L'image du milieu UITabBarItem restera au centre et la droite UITabBarItem sera alignée sur la droite.

J'ai cherché partout sur Internet, mais UITabBarItem n'a aucune propriété alignImage ou quelque chose comme ça.

Une idée comment puis-je faire cela?

Merci!

Répondre

1

enter image description here

Set encart d'image de l'élément de barre d'onglets comme celui-ci

+0

A travaillé lorsque les valeurs étaient '30' et' -30' –

0

Vous pouvez le faire en spécifiant la valeur horizontale de "Custom offset" pour UITabBarItem dans Storyboard selon la capture d'écran. (Note: donner une valeur positive pour le droit TabBarItem à droite, valeur négative pour la gauche une et « position par défaut » pour le centre une)

enter image description here

Dans le dispositif, il ressemblera comme ci-dessous:

enter image description here

+0

Et si je n'utilise pas de storyboard? Comment puis-je faire cela par programme? –

+0

Récupère l'instance UITabBarItem du contrôleur de vue et utilise la méthode "titlePositionAdjustment: UIOffset" pour fournir la valeur de décalage. –

0

Pouvez-vous essayer ça? Fondamentalement, vous pouvez définir les encarts de la propriété image sur votre tabBarButton (UITabBarItem). Il pourrait y avoir un autre moyen mais essayez.

let tabBarButton = UITabBarItem.init(title: "One", image: myImage, selectedImage: nil) 
tabBarButton.image?.withAlignmentRectInsets(UIEdgeInsetsMake(0, 15, 0, 0))//Give your left alignment number 

//one more way 
tabBarButton.imageInsets = UIEdgeInsetsMake(0, 15, 0, 0)