与UITableView结合使用时,UINavigationBar下缺少放置阴影

与UITableView结合使用时,UINavigationBar下缺少放置阴影,uitableview,ios6,uinavigationbar,Uitableview,Ios6,Uinavigationbar,当我尝试向导航栏添加自定义背景时,它们在表视图的顶部没有阴影。在子视图中,一切正常 这是我使用的代码 // Create resizable images UIImage *gradientImage44 = [[UIImage imageNamed:@"navbar"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; // Set the

当我尝试向导航栏添加自定义背景时,它们在表视图的顶部没有阴影。在子视图中,一切正常

这是我使用的代码

// Create resizable images
UIImage *gradientImage44 = [[UIImage imageNamed:@"navbar"]
                            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    
// Set the background image for *all* UINavigationBars
[[UINavigationBar appearance] setBackgroundImage:gradientImage44
                                   forBarMetrics:UIBarMetricsDefault];
    // Customize NavBar Shadow
[[UINavigationBar appearance] setShadowImage:nil];
不存在阴影

现有阴影

更新: 找到了这个,但不起作用。我完全是用同样的方法来做的:-(.

替换

[[UINavigationBar外观]设置阴影图像:nil];

[[UINavigationBar外观]设置阴影图像:[UIImage ImageName:@“SomeShadowImage”]];


它适用于iOS 6.0及更高版本。

我通过重新实现导航控制器修复了它。视图层次结构如下所示

UIView 
+- Navigation View
+- Table View

我将UIView更改为表视图,并将其添加到UINavigation控制器中。这修复了缺少的阴影问题。

我遵循@madcat的回答。在我的情况下,UITableView或UITableViewController(嵌入容器视图)必须位于导航栏上方(拖到视图上)在层次结构中。就像那样,导航栏是在UITableView/容器测试之后/之上绘制的阴影,但仍然不工作。我现在在子视图中获得了一个新阴影。!你不想要那个蓝色阴影吗?到底什么不起作用?不,我不想要蓝色阴影。我使用它只是为了将其与标准阴影区分开来。我的应用程序哈s 2个屏幕。主屏幕是一个带有表格视图的导航栏。它们没有阴影。第二个屏幕是细节视图,顶部有一个导航栏。它们是阴影。我唯一想实现的是,我在两个屏幕上都有阴影。这对苹果来说非常不合逻辑,但正确。+1