2012-02-14 15 views
4

私はのdrawRectをオーバーライドすることでUINavigationControllerのbackgroung画像を変更することができるよ:メソッド: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 

背景には、私はあることを意図したものであるとtintColorだけでなく、しかし「にISN色を設定しようとしたとき私は私が欲しい色を表示するUINavigationBarを強制するにはどうすればよい

@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 

:トンUIColorクラス内の既存のそれは奇妙な色を失敗して示して?

注:バックグラウンド自体が画像に設定されているため、ナビゲーションコントローラのボタンの色に問題があります。

答えて

10

あなたはこの実行する必要があります。

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

そうでなければあなたは整数演算をやっている、あなたはおそらくそれらのすべてのために0になってしまいますが。浮動小数点演算を使用し、あなたが望む値を得る。

+0

作品のための作品!ありがとう – 4mahmoud

7

これは魔法のように私

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