2010-10-23 5 views
1

Comment changer la couleur des barres de navigation, des barres à onglets?Changer la couleur Barres de navigation, Barres à onglets

Chaque fois que je le change, je ne reçois pas la couleur que je veux, soit en dégradé rouge, soit en dégradé blanc/argent.

Mais, incapable de le faire, le dégradé par défaut, le bleu et le gris, semblent tous les deux bons, mais essayez de changer n'importe quelle autre couleur et cela a l'air terrible.

Des conseils? comment faire un dégradé?

Répondre

4

Pour la barre de navigation, vous pouvez utiliser:

[navigationController.navigationBar setTintColor:[UIColor redColor]; //Red as an example. 

Ceci teinter la couleur de la barre de navigation et tous ses boutons à une couleur spécifique, dans ce cas rouge. Cette propriété peut également être définie dans Interface Builder.

Et si vous souhaitiez le personnaliser davantage, vous pouvez définir l'arrière-plan du UINavigationBar sur une image en le subdivisant. Comme si ...

Fichier d'en-tête.

#import <UIKit/UIKit.h> 

@interface UINavigationBar (CustomImage) 

@end 

fichier implementaion.

#import "CustomNavigationBar.h" 

@implementation UINavigationBar (CustomImage) 

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx 

{ 
    if([self isMemberOfClass: [UINavigationBar class]]){ 
     UIImage *image = [UIImage imageNamed:@"bar.png"]; 
     CGContextClip(ctx); 
     CGContextTranslateCTM(ctx, 0, image.size.height); 
     CGContextScaleCTM(ctx, 1.0, -1.0); 
     CGContextDrawImage(ctx, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage); 
    }else{ 
     [super drawLayer:layer inContext:ctx]; 
    } 

} 

@end 

Ensuite, dans Interface Builder, définissez la classe de vous UINavigationBar (dans ce cas) CustomNavigationBar sous l'onglet Identité.

Si vous modifiez légèrement le code de sorte qu'il sous-classe UITabBar à la place, il peut fonctionner avec UITabBar bien que je ne l'ai pas essayé.

+0

si compliqué? : – 001

+0

Bien que le réglage de la couleur de la teinte ne soit pas compliqué, la définition d'une image complètement différente est compliquée – Joshua

+0

Même le code SetTintColor n'a pas fonctionné pour moi, j'ai essayé beaucoup de ces types de code et aucun n'a fonctionné. Hmm ... Je me demande si je ne le place pas correctement, mais les erreurs ne me dérange pas où je le place, ils suggèrent juste qu'il y a un identifiant manquant? – john

Questions connexes