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化,在其中使用子视图做一些魔术,然后通过以下方式初始化您的导航控制器[[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 回答