O UINavigationBar e o UISearchBar têm uma propriedade tintColor que permite alterar a cor da tonalidade (surpreendente, eu sei) de ambos os itens. Quero fazer a mesma coisa com o UITabBar em meu aplicativo, mas descobri agora uma maneira de alterá-lo da cor preta padrão. Alguma ideia?
ios
iphone
uitabbarcontroller
uitabbar
pixel
fonte
fonte
Respostas:
Consegui fazer isso funcionar criando uma subclasse de um UITabBarController e usando classes privadas:
fonte
O iOS 5 adicionou alguns novos métodos de aparência para personalizar a aparência da maioria dos elementos da IU.
Você pode direcionar cada instância de um UITabBar em seu aplicativo usando o proxy de aparência.
Para iOS 5 + 6:
Para iOS 7 e superior, use o seguinte:
Usar o proxy de aparência mudará qualquer instância da barra de guias em todo o aplicativo. Para uma instância específica, use uma das novas propriedades dessa classe:
fonte
Eu tenho um adendo para a resposta final. Embora o esquema essencial esteja correto, o truque de usar uma cor parcialmente transparente pode ser melhorado. Presumo que seja apenas para deixar o gradiente padrão aparecer. Ah, também, a altura do TabBar é de 49 pixels em vez de 48, pelo menos no OS 3.
Portanto, se você tiver uma imagem adequada de 1 x 49 com gradiente, esta é a versão de viewDidLoad que você deve usar:
fonte
Quando você apenas usa addSubview, seus botões perdem a capacidade de clicar, então, em vez de
usar:
fonte
Não há uma maneira simples de fazer isso. Basicamente, você precisa criar uma subclasse de UITabBar e implementar o desenho personalizado para fazer o que quiser. É um pouco trabalhoso para o efeito, mas pode valer a pena. Recomendo registrar um bug com a Apple para adicioná-lo a um futuro iPhone SDK.
fonte
A seguir está a solução perfeita para isso. Isso funciona bem comigo para iOS5 e iOS4.
fonte
No iOS 7:
Também recomendo definir primeiro de acordo com seus desejos visuais:
O estilo de barra coloca um separador sutil entre seu conteúdo de visualização e sua barra de guias.
fonte
[[self tabBar] insertSubview:v atIndex:0];
funciona perfeitamente para mim.fonte
para mim, é muito simples mudar a cor do Tabbar como: -
Experimente isso !!!
fonte
fonte
apenas para cor de fundo
ou isso em App Delegate
para mudar a cor dos ícones não selecionados da barra de guias
Para iOS 10:
Acima do iOS 10:
fonte
Existem algumas boas ideias nas respostas existentes, muitas funcionam de maneira um pouco diferente e o que você escolhe também dependerá de quais dispositivos você visa e que tipo de aparência você pretende alcançar.
UITabBar
é notoriamente pouco intuitivo quando se trata de personalizar sua aparência, mas aqui estão mais alguns truques que podem ajudar:1). Se você deseja se livrar da sobreposição brilhante para uma aparência mais plana, faça:
2). Para definir imagens personalizadas para os botões da barra de guias, faça algo como:
Onde
selected
eunselected
sãoUIImage
objetos de sua escolha. Se você quiser que eles tenham uma cor lisa, a solução mais simples que encontrei é criar umUIView
com o desejadobackgroundColor
e então apenas renderizá-lo em umUIImage
com a ajuda do QuartzCore. Eu uso o seguinte método em uma categoriaUIView
para obter umUIImage
com o conteúdo da visualização:3) Finalmente, você pode querer personalizar o estilo dos títulos dos botões. Faz:
Isso permite que você faça alguns ajustes, mas ainda bastante limitados. Particularmente, você não pode modificar livremente onde o texto é colocado dentro do botão e não pode ter cores diferentes para botões selecionados / não selecionados. Se você quiser fazer um layout de texto mais específico, basta definir
UITextAttributeTextColor
para ser claro e adicionar seu texto nas imagensselected
eunselected
da parte (2).fonte
fonte
Outra solução (que é um hack) é definir o alfa no tabBarController como 0,01 para que seja virtualmente invisível, mas ainda clicável. Em seguida, defina um controle ImageView na parte inferior da ponta da MainWindow com sua imagem da barra de guias personalizada abaixo do tabBarCOntroller com alfa. Em seguida, troque as imagens, mude as cores ou a luz de destaque quando o controlador da barra de guias alternar as visualizações.
No entanto, você perde a funcionalidade '... mais' e personaliza.
fonte
Olá, estou usando o iOS SDK 4 e consegui resolver esse problema com apenas duas linhas de código e funciona assim
Espero que isto ajude!
fonte
fonte
Resposta do Swift 3.0: (de Vaibhav Gaikwad)
Para alterar a cor dos ícones não selecionados da barra de guias:
Para alterar apenas a cor do texto:
fonte
Swift 3 usando a aparência do seu
AppDelegate
faça o seguinte:UITabBar.appearance().barTintColor = your_color
fonte