2012-01-20 13 views
1

グラデーションを使用してナビゲーションコントローラのbackButtonの色を変更したいと思います。 navigatonBarの色を変更しましたが、backButtonの色を変更できませんでした。私はself.navigationController.navigationBar.tintColor 両方のバーの色を使用し、戻るボタンが変更されているが、私は navigationControllerのbackButtonの色を変更する

CGRect navFrame = self.navigationController.navigationBar.frame; 
navFrame.origin.y = 0.0f; 
[self.navigationController.navigationBar.layer insertSublayer:[AddGradient addGradientToNavigationBar:navFrame] atIndex:0]; 
navigationBar

ために行ったように勾配をapllyしたい場合

addGradientToNavigationBarのコードは

+ (CAGradientLayer*)addGradientToNavigationBar:(CGRect)navRect { 

    CAGradientLayer *gradient = [CAGradientLayer layer]; 
    gradient.frame = navRect; 
    gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] CGColor], 
         (id)[[XAppDelegate getColor] CGColor], nil]; 
    return gradient; 
} 

すべてのヘルプがなるあります感謝。

答えて

0

バーとボタンの色を動的に変更する必要がない場合は、iOS 5 UIAppearance protocolを使用することをお勧めします。 (すなわち何度でもiOS版で繰り返すことができる部分を有する)、スケーラブルな画像を作成し、このような何かを:

[[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"BarGradient.png"] 
            forBarMetrics: UIBarMetricsDefault]; 

[[UIBarButtonItem appearance] setBackgroundImage: [[UIImage imageNamed:@"BarButtonScalableGradient.png"] 
        resizableImageWithCapInsets: UIEdgeInsetsMake(15, 6, 15, 6)] 
             forState: UIControlStateNormal 
             barMetrics: UIBarMetricsDefault]; 

は、このヘルプをしていますか?

1

は、このコード行を実装します。

colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this 

がプッシュビューコントローラでこれを入れてください:

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]]; 

は、ボタンの色を調整するために、以下にredColorを交換してください。このバックボタンの色を表示するビューコントローラではありません。

関連する問題