您好,我正在使用以下代码设置导航栏的阴影图像:

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,但是如何在全局范围内执行此操作?

最佳答案

你可以:

  • 将包含阴影图像的 subview 添加到viewController.view
  • 将包含阴影图像的 subview 添加到[[UIApplication sharedApplication] keyWindow],这会将图像全局添加到窗口中。但是,它可能会变得有点丑陋,例如显示模态视图 Controller 时。
  • 您可以继承UINavigationBar的子类,在其中使用 subview 进行一些魔术操作,然后通过[[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]初始化您的navigationController
  • 关于iphone - 外观代理-iOS 5的setShadowImage替代品吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12690753/

    10-12 06:02