2012-02-14 4 views
4

Je suis en mesure de changer l'image de backgroung UINavigationController par drawRect impérieuses: Méthode:Comment changer la couleur de fond de UINavigationController?

@implementation UINavigationBar (UINavigationBarCategory) 

- (void)drawRect:(CGRect)rect { 

    UIImage *img = [UIImage imageNamed: @"navController.png"]; 
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
     self.tintColor = [UIColor blueColor]; 
} 

@end 

l'arrière-plan est ce que je voulais être et tintColor aussi bien, mais en essayant de définir une couleur qui n » est pas t existant dans UIColor classe, il échoue et montre étrange couleur:

@implementation UINavigationBar (UINavigationBarCategory) 

- (void)drawRect:(CGRect)rect { 

    UIImage *img = [UIImage imageNamed: @"navController.png"]; 
    [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
     self.tintColor = [UIColor colorWithRed:(26/255) green:(103/255) blue:(159/255)      alpha:1]; 
} 

@end 

Comment puis-je forcer UINavigationBar à montrer la couleur que je veux?

Note: J'ai seulement un problème avec la couleur des boutons du contrôleur de navigation puisque l'arrière-plan lui-même est réglé sur l'image.

Répondre

10

Vous devez faire ceci:

self.tintColor = [UIColor colorWithRed:(26.0f/255.0f) green:(103.0f/255.0f) blue:(159.0f/255.0f) alpha:1.0f]; 

Sinon, vous faites une arithmétique entière et vous finirez avec 0 pour tous sans doute. Utilisez l'arithmétique à virgule flottante et vous obtenez les valeurs que vous désirez.

+0

fonctionne comme un charme! Merci – 4mahmoud

7

Cela fonctionne pour moi

self.navigationController.navigationBar.backgroundColor= [UIColor colorWithRed:57.0/255.0 green:158.0/255 blue:209.0/255 alpha:1.0]; 
Questions connexes