5

こんにちは、このコードを使用して、ナビゲーション バーの影の画像を設定しています。

if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) {

    [[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"nav-bar-shadow"]];

    [[UIToolbar appearance] setShadowImage:[UIImage imageNamed:@"tool-bar-shadow"]  forToolbarPosition:UIToolbarPositionAny];
}

ただし、これは iOS 6 のみのようです (確かなことは言えませんが、これに関するドキュメントはどこにもありません)。iOS 5 では動作しません。

ある種の代替手段がありますか - ナビゲーションバーの下に画像をグローバルに設定しますか? カスタムUIViewを考えましたが、これをグローバルに行うにはどうすればよいですか?

4

2 に答える 2

1

あなたはできる:

  1. 影の画像を含むサブビューをviewController.view
  2. 影の画像を含むサブビューを に追加します[[UIApplication sharedApplication] keyWindow]。これにより、画像がウィンドウにグローバルに追加されます。ただし、モーダル ビュー コントローラーを表示する場合など、少し見苦しくなります。
  3. をサブクラスUINavigationBar化し、そこにあるサブビューで魔法をかけてから、navigationController を介して初期化することができます[[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]
于 2012-10-02T18:29:07.820 に答える
0

shadowImage は ios6 のみです:

@property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;
于 2012-12-02T09:11:55.997 に答える