创建透明NavigationBar

时间:2015-07-26 14:56:19

标签: ios swift uinavigationcontroller uinavigationbar

我想知道我们如何创建一个完全透明的UINavigationBar(alpha = 0),但BarButton Item仍然可见。

我想拥有一个Invisible NavigationBar,但我需要BarButtonItem可见。

2 个答案:

答案 0 :(得分:3)

截图

夫特

self.navigationController?.navigationBar.setBackgroundImage(UIImage.new(), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage.new()

OC

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];

答案 1 :(得分:1)

我找到了一种方法:

创建UINavigationBar的子类并将其提供给导航控制器以使用它。

class NavigationBar: UINavigationBar {
    // An empty implementation will make the view to be transparent
    override func drawRect(rect: CGRect) {
    }
}

如果您使用的是InterfaceBuilder,则可以选择导航控制器,然后选择其导航栏,然后相应地更改其类。

如果您以编程方式执行此操作:

let navController = UINavigationController(navigationBarClass: NavigationBar.self, toolbarClass: nil)
...

UIBarButtonItem的结果:

希望有所帮助

旧答案:

我很久以前就试过了(ios6)。基本上它是可能的。 使导航栏的颜色为UIColor.clearColor()。按钮需要在UIBarButton中自定义UIViews,以便按照您想要的方式显示。我想你也需要调整导航栏后面的视图颜色。