0

多くのビューで構成されるアプリがあります。各ビューは、ストーリー ボードのナビゲーション コントローラーによって制御されます。カスタム イメージをナビゲーション バーとして使用したいと考えています。イメージを作成しましたが、これを実装する手順がわかりません。コード:

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect
{
    UIImage *image = [UIImage imageNamed: @"topbar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

動作しないようです。このコードをView Controllerに配置しています。ビューコントローラーを設定する別の方法を使用する必要がありますか、それともナビゲーションコントローラー用に別のコントローラーを使用する必要がありますか? もしそうなら、どうすればいいですか?

ストーリーボードのレイアウトは次のとおりです。

ここに画像の説明を入力

ありがとうございました。

4

2 に答える 2

3

これがあなたのケースに 100% 適合するかどうかはわかりませんが、少なくともこのような画像でナビゲーション バーを覆うことができます...

self.navigationItem.titleView = [[UIImageView alloc] initWithImage: navBarImage];

画像は、タイトルが通常表示される場所の中央に配置されますが、十分な大きさの場合は、ナビゲーション バー全体を覆います。

于 2012-09-07T01:38:26.113 に答える
3

iOS 5を使用しているので、これを行うことができます:

UIImage *image = [UIImage imageNamed:@"topbar"];
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

サブクラスは必要ありません。通常の UINavigationBar を使用できます。

于 2012-09-07T01:40:16.417 に答える