質問

次を使用して、ナビゲーションバーにカスタム背景を追加できました。

UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"UINavigationBar.png"]];
[myViewController.navigationBar insertSubview:iv atIndex:0];
[iv release];

これは正常に機能し、タイトルとボタンは正常に表示されます。ただし、1レベル下にドリルダウンしてルートに戻ると、ボタンは非表示になりますが、タイトルは表示されたままです。ナビゲーションバーの画像がボタン項目を覆っているように見えます。

一番下に挿入しているので混乱しているので、ナビゲーション項目がプッシュおよびポップされたとき、ナビゲーションバーの他のビューの上に表示されると思います。

アイデアはありますか

ありがとう、

マイク

他のヒント

iOS 5ではこれは機能しませんが、良いニュースはこれを行う簡単な方法があることです

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"name"] forBarMetrics:UIBarMetricsDefault];

注:これはiOS 5以降でのみ機能するため、後方互換性を確保する場合はiOSバージョンを確認してください。

UINavigationBarに新しい背景を単純に追加する方法は次です。

/////////
 UINavigationController *navController = [[UINavigationController alloc] init];
 UINavigationBar*bar=[navController navigationBar]; // get navigation bar 
  NSArray*barSubview=[bar subviews]; // get all subviews of bar
 UIView*backView=[arr objectAtIndex:0]; // at index 0 lying background view of our bar
 backView.alpha=0.0f;// set alpha to 0 and it will become invisible

    UIImageView*imgView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top-bar.png"]];// create the image view that we will insers as subbview in our bar
    imgView.frame=CGRectMake(0, 0, 320, 44);
    [bar insertSubview:imgView atIndex:0];// and it will be out new background
    [imgView release];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top