Normalement, sur chaque onglet d'un, UITabBar
vous avez une petite image et un titre nommant l'onglet. L'image est positionnée / centrée vers le haut de l'onglet pour accueillir le titre en dessous. Ma question est la suivante: si vous voulez avoir une tabBar avec juste une image et sans titre, y a-t-il un moyen de déplacer l'image vers le bas pour qu'elle soit mieux centrée dans l'onglet?
J'utilise (voir ci-dessous) actuellement:
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
mais je préférerais utiliser une image plus grande sans titre, pour le moment, si je fais une image plus grande que 70 pixels @ 2x, elle commence à se détacher du haut du UITabBar
tout en laissant beaucoup d'espace inutilisé en bas.
la source
Vous pouvez également le faire via le storyboard. Sélectionnez votre onglet, accédez à l'inspecteur de taille et attribuez les encarts appropriés.
* Démonstration sur Xcode, version 7.3.1 (7D1014)
la source
Créez une sous-classe de
UITabBarController
, et dans sonviewDidLoad
:Swift 3:
la source
AppDelegate
fonctionne également, mais ce n'est évidemment pas mieux que de le sous-classer. Vous pouvez avoir votre propre préférence cependant :)Si vous utilisez Xamarin, cela fonctionne:
la source
Cela a fonctionné pour moi
Swift 4
la source
SWIFT 3.0
Vous pouvez définir les jeux d'image, définir le haut, la gauche, le bas et la droite selon la conception.
la source
Pour iOS 11, vous devez remplacer la méthode TraitCollection en plus de définir ImageInsets. Veuillez ajouter la méthode dans votre classe UITabBarController sous-classée
la source
return UITraitCollection(traitsFrom: [ super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)])
a fait l'affaire pour moi.Dans Swift 4.2 ,
UIEdgeInsetsMake
est déprécié, nous devrions plutôt utiliserUIEdgeInsets
,la source