创建一个透明的 NavigationBar
Create a Transparent NavigationBar
我想知道我们如何创建一个完全透明 (alpha = 0) 但 BarButton Item 仍然可见的 UINavigationBar。
我想要一个不可见的 NavigationBar,但我需要 BarButtonItem 可见。
我找到了一个方法:
创建UINavigationBar
的子class,并将其交给导航控制器使用。
class NavigationBar: UINavigationBar {
// An empty implementation will make the view to be transparent
override func drawRect(rect: CGRect) {
}
}
如果您使用的是 InterfaceBuilder,那么您可以 select 导航控制器,然后 select 它的导航栏,然后适当地更改它的 class。
如果您以编程方式进行:
let navController = UINavigationController(navigationBarClass: NavigationBar.self, toolbarClass: nil)
...
带有 UIBarButtonItem 的结果:
希望对您有所帮助
旧答案:
我很久以前尝试过 (ios6)。基本上是可以的。
将导航栏的颜色设为UIColor.clearColor()
。按钮需要是 UIBarButton 内的自定义 UIViews,以便按您想要的方式显示。我想你也需要调整导航栏后面的视图的颜色。
截图
Swift
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]];
我想知道我们如何创建一个完全透明 (alpha = 0) 但 BarButton Item 仍然可见的 UINavigationBar。
我想要一个不可见的 NavigationBar,但我需要 BarButtonItem 可见。
我找到了一个方法:
创建UINavigationBar
的子class,并将其交给导航控制器使用。
class NavigationBar: UINavigationBar {
// An empty implementation will make the view to be transparent
override func drawRect(rect: CGRect) {
}
}
如果您使用的是 InterfaceBuilder,那么您可以 select 导航控制器,然后 select 它的导航栏,然后适当地更改它的 class。
如果您以编程方式进行:
let navController = UINavigationController(navigationBarClass: NavigationBar.self, toolbarClass: nil)
...
带有 UIBarButtonItem 的结果:
希望对您有所帮助
旧答案:
我很久以前尝试过 (ios6)。基本上是可以的。
将导航栏的颜色设为UIColor.clearColor()
。按钮需要是 UIBarButton 内的自定义 UIViews,以便按您想要的方式显示。我想你也需要调整导航栏后面的视图的颜色。
截图
Swift
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]];