1

現在のナビゲーション バーをカスタム イメージに置き換えたい。私のコードの構造は、タブ バー コントローラーが、ビューを含む一連のナビゲーション コントローラーを制御することです (タブ バー コントローラー -> ナビゲーション コントローラー -> ビュー)。アプリデリゲートでこのコードを使用してみました

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
  UIColor *color = [UIColor blackColor];
  UIImage *img  = [UIImage imageNamed: @"nav.png"];
  [img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
  self.tintColor = color;
}
@end

しかし、うまくいきませんでした。理由はありますか?別の場所に置くべきでしたか?ありがとう!

4

2 に答える 2

3

iOS 5 を使用している場合は、ナビゲーション コントローラー (この例では aNavigationController) を初期化した場所で setBackgroundImage: を次のように使用できます。

[aNavigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics:UIBarMetricsDefault];
于 2012-08-20T00:46:53.383 に答える
2

カテゴリは使用しません。代わりに、UINavigationBarをサブクラス化します。これを参照してください:https ://stackoverflow.com/a/6959354/472344

iOS 5以降をターゲットにしている場合は、代わりに@BJHのソリューションを使用してください。

于 2012-08-20T01:38:42.887 に答える