5

このコードを使用して、ナビゲーション バーにロゴを正常に追加しました。

UIImage *image = [UIImage imageNamed: @"top-logo"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];

self.navigationItem.titleView = imageView;

問題は、ロゴの高さが54 ピクセルで、ナビゲーション バーの高さがデフォルトで44 ピクセルであることです。ロゴは意図的にナビゲーション バーの下部からオーバーフローするように設計されていますが、そのためにはナビゲーション バーの境界を変更する必要があり、Apple のガイドラインに違反したくありません。しかし、ナビゲーションバーからオーバーフローするには、ナビゲーションアイテムの titleView である imageView が必要です。

その上、私のアプリの 1 つで、ナビゲーション バーの高さを減らしましたが、アプリがバックグラウンドに戻って戻ってきたときにおかしくなり始めました (高さが通常に戻り始めたため、ナビゲーション バー内の背景が黒くなりました)。

4

4 に答える 4

8

似たような状況の投稿はこちらです。受け入れられた回答では、imageview の代わりに UIButton が使用されました。

受け入れられた回答のコード:

- (void)viewDidLoad {
  [super viewDidLoad];

  UIButton *logoView = [[[UIButton alloc] initWithFrame:CGRectMake(0,0,85,40)] autorelease];
  [logoView setBackgroundImage:[UIImage imageNamed:@"navBarLogo.png"] forState:UIControlStateNormal];
  [logoView setUserInteractionEnabled:NO];

  self.navigationItem.titleView = logoView;
}

TTLauncherView のナビゲーション バーのタイトルの代わりの画像

于 2013-01-13T19:31:03.970 に答える
0

ナビゲーションバーに画像を追加する方法を探していて、Swift を使用している場合は、次のコードが必要です。

override func viewDidLoad() {
    super.viewDidLoad()

    let imageView = UIImageView(image: UIImage(named: "your_logo"))
    navigationItem.titleView = imageView
}
于 2016-09-28T17:42:24.217 に答える