将褪色的深色背景设置为 UINavigationBar

Set a faded darker background to a UINavigationBar

我正在尝试为导航栏设置一个褪色的深色背景,如下图所示。

我已经尝试使用此代码,但它并不完全符合我的预期。

UINavigationBar.appearance().backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.4)

我找到了这个主题,但没有合适的答案:

Shows a faded gray color view through iOS 7 Navigation bar of a UISplitViewController

任何想法将不胜感激。

2015 年 10 月 6 日编辑:如果有人需要知道如何执行该操作

Swift 用户: - 特别是 viewcontroller :我使用 :

 self.navigationController!.navigationBar.setBackgroundImage(UIImage(named: "fadedimage.png"), forBarMetrics: .Default)

在主 NavigationController 中(将其应用于所有导航栏)我使用:

UINavigationBar.appearance().setBackgroundImage(UIImage(named: "fadedimage.png"), forBarMetrics: .Default)

这可能不是正确的方法,但您可以使用自定义图像实现相同的效果。

从网上下载一张透明图片,我命名为transparent.png

并设置导航栏背景图片:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"transaprent.png" ] forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar setBackgroundColor:[UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.0f]];

结果如下:

稍后您可以为导航栏应用阴影效果。

编辑:

我下载了一个自定义阴影透明png图像,并使用上面的代码应用它。

您仍然可以根据您的要求使用更好的自定义图像来改进这一点。

这是我使用的图片:

要删除出现在导航栏上的底部边框,请使用此代码:

    [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];