1
UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

ナビゲーションバーに画像を追加しようとしていますが、上記のコードを使用すると、画像はナビゲーションバーに配置されますが、画像の左右に灰色のギャップが残ります。画像は320x44で作成されましたが、フレームを設定しているにもかかわらず、なぜサイズが変更されているのかわかりません。

4

1 に答える 1

2

それは...おそらくあなたがそれをしたい方法ではありません—それtitleViewは目的ではありません。カスタムナビゲーションバーの背景を作成する通常の方法はUINavigationBar、次のようににカテゴリを作成することです。

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

これをプロジェクトの.mファイルにスローすると、すべてのナビゲーションバーが背景として「my-navigation-background.png」を使用していることがわかります。

于 2010-02-24T15:19:48.597 に答える