UINavigationBar et UISearchBar ont tous deux une propriété tintColor qui vous permet de changer la couleur de teinte (surprenante, je sais) de ces deux éléments. Je veux faire la même chose pour l'UITabBar dans mon application, mais j'ai trouvé maintenant un moyen de le changer de la couleur noire par défaut. Des idées?
87
Réponses:
J'ai pu le faire fonctionner en sous-classant un UITabBarController et en utilisant des classes privées:
la source
iOS 5 a ajouté de nouvelles méthodes d'apparence pour personnaliser l'apparence de la plupart des éléments de l'interface utilisateur.
Vous pouvez cibler chaque instance d'un UITabBar dans votre application à l'aide du proxy d'apparence.
Pour iOS 5 + 6:
Pour iOS 7 et supérieur, veuillez utiliser les éléments suivants:
L'utilisation du proxy d'apparence modifiera toute instance de la barre d'onglets dans l'application. Pour une instance spécifique, utilisez l'une des nouvelles propriétés de cette classe:
la source
J'ai un addendum à la réponse finale. Bien que le schéma essentiel soit correct, l'astuce consistant à utiliser une couleur partiellement transparente peut être améliorée. Je suppose que c'est uniquement pour laisser transparaître le dégradé par défaut. Oh, aussi, la hauteur de la TabBar est de 49 pixels au lieu de 48, du moins sous OS 3.
Donc, si vous avez une image 1 x 49 appropriée avec un dégradé, c'est la version de viewDidLoad que vous devez utiliser:
la source
Lorsque vous utilisez simplement addSubview, vos boutons perdent leur cliquabilité, donc au lieu de
utilisation:
la source
Il n'y a pas de moyen simple de le faire, vous devez essentiellement sous-classer UITabBar et implémenter un dessin personnalisé pour faire ce que vous voulez. C'est un peu de travail pour l'effet, mais cela peut en valoir la peine. Je recommande de déposer un bogue auprès d'Apple pour l'ajouter à un futur SDK iPhone.
la source
Voici la solution parfaite pour cela. Cela fonctionne bien avec moi pour iOS5 et iOS4.
la source
Sur iOS 7:
Je recommande également de régler d'abord en fonction de vos envies visuelles:
Le style de barre place un séparateur subtil entre votre contenu d'affichage et votre barre d'onglets.
la source
[[self tabBar] insertSubview:v atIndex:0];
fonctionne parfaitement pour moi.la source
pour moi, c'est très simple de changer la couleur de Tabbar comme: -
Essaye ça!!!
la source
la source
pour juste la couleur de fond
ou ceci dans App Delegate
pour changer la couleur des icônes de désélection de la barre d'onglets
Pour iOS 10:
Au-dessus d'iOS 10:
la source
Il y a quelques bonnes idées dans les réponses existantes, beaucoup fonctionnent légèrement différemment et ce que vous choisissez dépendra également des appareils que vous ciblez et du type de look que vous souhaitez obtenir.
UITabBar
est notoirement peu intuitif lorsqu'il s'agit de personnaliser son apparence, mais voici quelques astuces supplémentaires qui peuvent aider:1). Si vous cherchez à vous débarrasser de la superposition brillante pour un look plus plat, faites:
2). Pour définir des images personnalisées sur les boutons tabBar, procédez comme suit:
Où
selected
etunselected
sont lesUIImage
objets de votre choix. Si vous souhaitez qu'ils soient une couleur plate, la solution la plus simple que j'ai trouvée est de créer unUIView
avec le désirébackgroundColor
, puis de le restituer en unUIImage
à l'aide de QuartzCore. J'utilise la méthode suivante dans une catégorieUIView
pour obtenir unUIImage
avec le contenu de la vue:3) Enfin, vous souhaiterez peut-être personnaliser le style des titres des boutons. Faire:
Cela vous permet de faire quelques ajustements, mais encore assez limités. En particulier, vous ne pouvez pas modifier librement l'emplacement du texte dans le bouton et ne pouvez pas avoir des couleurs différentes pour les boutons sélectionnés / non sélectionnés. Si vous voulez faire une mise en page de texte plus spécifique, définissez simplement
UITextAttributeTextColor
pour être clair et ajoutez votre texte dans les imagesselected
etunselected
de la partie (2).la source
la source
Une autre solution (qui est un hack) est de définir l'alpha sur le tabBarController à 0,01 afin qu'il soit pratiquement invisible tout en restant cliquable. Ensuite, définissez un contrôle ImageView au bas de la pointe MainWindow avec votre image de barre d'onglets personnalisée sous le tabBarCOntroller alpha'ed. Ensuite, échangez les images, changez les couleurs ou la lumière lorsque le tabbarcontroller change de vue.
Cependant, vous perdez le «... plus» et personnalisez la fonctionnalité.
la source
Salut J'utilise le SDK iOS 4 et j'ai pu résoudre ce problème avec seulement deux lignes de code et c'est comme ça
J'espère que cela t'aides!
la source
la source
Réponse Swift 3.0: (de Vaibhav Gaikwad)
Pour changer la couleur des icônes de désélection de la barre d'onglets:
Pour changer la couleur du texte uniquement:
la source
Swift 3 en utilisant l'apparence de votre
AppDelegate
faites ce qui suit:UITabBar.appearance().barTintColor = your_color
la source