Normalmente, em cada guia de uma UITabBar
você tem uma pequena imagem e um título nomeando a guia. A imagem é posicionada / centralizada na parte superior da guia para acomodar o título abaixo. Minha pergunta é: se você quiser ter uma tabBar com apenas uma imagem e sem título, há uma maneira de mover a imagem para baixo para que ela centralize melhor na guia?
Estou usando (veja abaixo) atualmente:
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
mas preferiria usar para uma imagem maior sem título, no momento, se eu aumentar a imagem maior do que cerca de 70 pixels @ 2x, ela começa a sair da parte superior, UITabBar
enquanto deixa muito espaço não utilizado na parte inferior.
fonte
Você também pode fazer isso via storyboard. Selecione seu tabbaritem, vá para o inspetor de tamanho e atribua os insets apropriados.
* Demonstrado no Xcode, versão 7.3.1 (7D1014)
fonte
Faça uma subclasse de
UITabBarController
e em seuviewDidLoad
:Swift 3:
fonte
AppDelegate
também funciona, mas obviamente não é melhor do que subclassificá-lo. Você pode ter sua própria preferência :)Se você estiver usando o Xamarin, isso funciona:
fonte
Isso funcionou para mim
Swift 4
fonte
SWIFT 3.0
Você pode definir configurações de imagem, definir superior, esquerda, inferior e direita de acordo com o desing.
fonte
Para iOS 11, você precisa substituir o método TraitCollection além de definir ImageInsets. Por favor, adicione o método em sua classe UITabBarController subclasse
fonte
return UITraitCollection(traitsFrom: [ super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)])
fez o truque para mim.No Swift 4.2 ,
UIEdgeInsetsMake
está obsoleto, em vez disso, devemos usarUIEdgeInsets
,fonte