外观代理- iOS 5中的setShadowImage替代方法?

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,但如何在全局范围内实现呢?

2个回答

1

您可以:

  1. 将包含阴影图像的子视图添加到您的 viewController.view 中。
  2. 将包含阴影图像的子视图添加到您的 [[UIApplication sharedApplication] keyWindow] 中,这将在窗口全局添加该图像。但是,在显示模态视图控制器时可能会有一些丑陋的情况。
  3. 您可以子类化 UINavigationBar,在其中使用子视图进行一些魔法,然后通过 [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]] 初始化您的 navigationController。

0

shadowImage 只适用于ios6:

@property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接