iOS 导航栏透明

2016-04-04  本文已影响829人  槑槑鹤

开发过程中,会遇到导航栏透明问题。如下图的需求:


要实现这个效果要注意到的点:

1、系统有提供隐藏导航栏的方法

override func viewWillAppear(animated: Bool) {

super.viewWillAppear(animated)

if navigationController?.navigationBarHidden ==  false {

navigationController?.setNavigationBarHidden(true, animated: true)

}

}

override func viewWillDisappear(animated: Bool) {

super.viewWillDisappear(animated)

if navigationController?.navigationBarHidden == true {

navigationController?.setNavigationBarHidden(false, animated: true)

}

}


2、隐藏导航栏后要自己加一个视图,拥有返回按钮,按钮要足够宽,保证点击范围,同时返回箭头要靠左


3、导航栏隐藏之后,返回手势会失效

这里我们需要创建一个navigationcontroller 类增加如下代码:

override func viewDidLoad() {

super.viewDidLoad()

if respondsToSelector(Selector("interactivePopGestureRecognizer")) {

interactivePopGestureRecognizer?.delegate = self

delegate = self

}

// Do any additional setup after loading the view.

}

注意要加上UINavigationControllerDelegate,UIGestureRecognizerDelegate

然后在storyboard 中设置navigationvc 的类为这个类

代码戳这 ——> TranslucentNavigationController 

上一篇 下一篇

猜你喜欢

热点阅读