外观代理 – setShadowImage替代iOS 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(虽然我不能肯定地说 – 我无法在任何地方find这方面的文档)。 它不适用于iOS 5。
有没有其他的select – 在导航栏下全局设置图像? 我想到了自定义UIView,但如何做到这一点全球?
您可以:
- 将包含阴影图像的子视图添加到
viewController.view
- 将包含阴影图像的子视图添加到
[[UIApplication sharedApplication] keyWindow]
,该图像将在窗口中全局添加图像。 但是,当显示一个模态视图控制器时,它会变得有点丑陋。 - 你可以
UINavigationBar
,在那里做一些有子视图的魔术,然后通过[[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]
初始化你的navigationController[[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]
shadowImage只是ios6:
@property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;