iOS-NavigationBar手势返回的时候跟随

这篇博客介绍了如何在iOS应用中实现当用户通过NavigationBar手势返回时,NavigationBar跟随界面一起移动的效果,以解决不同界面间NavigationBar显示差异导致的视觉不协调问题。作者提供了两种实现方式,一种是在特定ViewController中添加代码,另一种是通过自定义ViewController转场动画来实现全局效果,并给出了相应的代码示例和第三方库链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS-NavigationBar手势返回的时候跟随

本文版权归作者所有,如需转载请联系孟祥月
优快云博客:http://blog.youkuaiyun.com/mengxiangyue
独立博客:http://mengxiangyue.com

在iOS的开发中有时候会遇到这样的情况,在开发的过程中有两个界面,这两个界面使用UINavigationController串联起来,然后在第一个ViewController中不显示UINavigationBar,在第二个显示UINavigationBar。iOS在手势返回的时候默认情况下iOS的NavigationBar是固定的,然后再去做一些渐变位移等动画,但是如果我们在一个界面有NavigationBar,一个没有这样的动画就会很难看。这时候我们希望第二个界面手势返回的时候,NavigationBar跟着界面一起移动。 实现类似下面的效果:

这个效果中有两个ViewController,在第二个Controller手势返回的时候,UINavigationBar是跟随着Controller的。如果只是在第一个界面的时候使用这种效果比较简单,只要在两个Controller中添加如下代码即可:

// 第一个ViewController
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    // 这里一定要使用这个方法 否则会有问题
    self.navigationController?.setNavigationBarHidden(true, animated: true)
}

// 第二个ViewController
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(false, animated: true)
}

上面的代码只能实现第一个UINavigationController第一个ViewController隐藏,第二个显示的时候实现跟随效果。如果想实现所有的界面都有跟随的效果,那需要自定义ViewController的转场动画,网上有人已经实现了这个效果,感兴趣的可以下载看一下,地址:https://github.com/esonchen/CCSlideNavigationTransition

这篇文章比较短,只是一个简单的Tip而已。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值