2

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

这是我使用的代码。

// 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];

不存在投影

我的导航栏

现有的阴影

子视图

更新:找到这个答案,但不起作用。我以完全相同的方式完成了它:-(。

4

3 回答 3

5

我通过重新实现导航控制器来修复它。视图层次结构看起来像这样。

UIView 
+- Navigation View
+- Table View

我将 UIView 更改为表格视图并将其添加到 UINavigation 控制器。这解决了丢失的阴影问题。

于 2013-03-10T12:08:55.993 回答
1

代替

[[UINavigationBar appearance] setShadowImage:nil];

[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"SomeShadowImage"]];

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

于 2013-03-08T11:27:45.127 回答
1

我跟着@madcat 的回答。在我的情况下,UITableView 或 UITableViewController(嵌入在容器视图中)必须位于层次结构中的导航栏(拖到视图上)之上。就像导航栏是在 UITableView/Container 之后/上方用阴影绘制的

于 2013-03-26T11:01:43.233 回答