美文网首页
iOS 导航栏透明

iOS 导航栏透明

作者: 槑槑鹤 | 来源:发表于2016-04-04 19:30 被阅读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 

相关文章

网友评论

      本文标题:iOS 导航栏透明

      本文链接:https://www.haomeiwen.com/subject/fygulttx.html