87 votes

Changement de teinte / Background color de UITabBar

La UINavigationBar et UISearchBar ont tous deux une propriété tintColor qui permet de changer la couleur de la teinte (surprenant, je sais) des deux de ces éléments. Je veux faire la même chose pour le UITabBar dans mon application, mais ont trouvé moyen de maintenant de passer la valeur de la couleur noire par défaut. Toutes les idées ?

105voto

imnk Points 2576

iOS 5 a ajouté quelques nouvelles méthodes d’apparence pour personnaliser l’apparence de la plupart des éléments de l’interface utilisateur.

Vous pouvez cibler toutes les instances d’une UITabBar dans votre application en utilisant le proxy d’apparence :

ou une instance spécifique en utilisant l’une des nouvelles propriétés de cette classe :

47voto

coneybeare Points 23802

J’ai été capable de faire fonctionner en sous-classant un UITabBarController et à l’aide de cours privés :

34voto

pabugeater Points 331

J'ai un addendum à la réponse finale. Alors que l'essentiel schéma est correct, l'astuce de l'aide partiellement transparent de couleur peuvent être améliorées. Je suppose que c'est uniquement pour laisser la valeur par défaut de gradient de montrer à travers. Oh, aussi, la hauteur de la TabBar est de 49 pixels plutôt que de 48, au moins dans les OS 3.

Donc, si vous avez une 1 x 49 image avec un dégradé, c'est la version de viewDidLoad vous devez utiliser:

- (void)viewDidLoad {

    [super viewDidLoad]; 

    CGRect frame = CGRectMake(0, 0, 480, 49);
    UIView *v = [[UIView alloc] initWithFrame:frame];
    UIImage *i = [UIImage imageNamed:@"GO-21-TabBarColorx49.png"];
    UIColor *c = [[UIColor alloc] initWithPatternImage:i];
    v.backgroundColor = c;
    [c release];
    [[self tabBar] addSubview:v];
    [v release];

}

Voici ce que le UITabBar ressemble: http://www.lehigh.edu/sol0/TabBarGradient.jpg

27voto

Marcin Zbijowski Points 471

Lorsque vous utilisez simplement addSubview, vos boutons perdent la possibilité de clic, alors au lieu de

 [[self tabBar] addSubview:v];
 

utilisation:

 [[self tabBar] insertSubview:v atIndex:0];
 

7voto

Gaurav aka sparsh Points 1169

Voici la solution parfaite pour cela. Cela fonctionne très bien avec moi pour iOS5 et iOS4.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X