Ios6 UINavigationBar阴影何时显示?(监督厅6)

Ios6 UINavigationBar阴影何时显示?(监督厅6),ios6,uinavigationbar,Ios6,Uinavigationbar,我正在使用带有自定义背景图像的导航栏。当我想添加自定义阴影图像时,我惊讶地发现即使是默认的阴影图像也不可见 iOS 6在UINavigationBars上引入了一个自动阴影,这是我希望看到的。来自的示例项目演示了这一点 但是,从Xcode的主细节模板创建新项目不会显示阴影 阴影究竟何时显示,何时不显示?IOS 6自动放置阴影默认显示。如果要禁用/隐藏此阴影,可以尝试以下操作: [[UINavigationBar appearance]setShadowImage:[[UIImage alloc]

我正在使用带有自定义背景图像的导航栏。当我想添加自定义阴影图像时,我惊讶地发现即使是默认的阴影图像也不可见

iOS 6在UINavigationBars上引入了一个自动阴影,这是我希望看到的。来自的示例项目演示了这一点

但是,从Xcode的主细节模板创建新项目不会显示阴影


阴影究竟何时显示,何时不显示?

IOS 6自动放置阴影默认显示。如果要禁用/隐藏此阴影,可以尝试以下操作:

[[UINavigationBar appearance]setShadowImage:[[UIImage alloc] init]];

我注意到,如果我将viewController从一个项目复制/粘贴到一个新项目,UINavigationBar阴影(有时)不会显示。用新的viewController替换复制的viewController可以解决此问题。。。(可能是您的情况)

我在一个从iOS5升级的项目上遇到了同样的问题,但仅在iOS6之前的Xcode版本中插入的导航控制器上。在最新版本的Xcode(4.6)中删除它们并用新的替换它们解决了这个问题。

我半年后发现的解决方法实际上非常简单:

self.navigationController.navigationBar.clipsToBounds = NO;

尽管如此,我仍然认为这是Xcode 4.4/4.5如何在情节提要中配置导航栏的一个缺陷。但至少现在我们知道如何解决这个问题了。干杯

除了Yang的答案之外,您还可以创建一个类别来进行如下全局修复

@interface UINavigationBar (JTDropShadowFix)

@end

@implementation UINavigationBar (JTDropShadowFix)

- (void)awakeFromNib {
    self.clipsToBounds = NO;
}

@end
如果您正在寻找一个解决方案,而不必使用category方法,您还可以访问一篇博客文章,讨论如何使用UINavigationController子类来实现相同的修复


添加一些上下文:我刚刚使用了一年的应用程序,将根
UINavigationView
嵌入到
UITabBarController
中。之后,旧的
UINavigationBar
在interface builder中检查了属性剪辑子视图


在嵌入过程中,我还为选项卡栏中的新选项卡添加了第二个导航控制器。令人惊讶的是,此控制器带有未选中的剪辑子视图。感觉像是xcode问题。

您解决了这个问题吗?我也遇到了同样的问题。在Xcode 4.5中,我仍然有这个问题。我也遇到了同样的问题。在某些VCs中显示,而在其他一些VCs中不显示。值得注意的是,我刚才创建的那些(可能使用Xcode 4.5)没有显示出来。有什么想法吗?我无法重现它们,而且听起来很疯狂。。。