WAPG4 解决透明导航栏返回黑块

不做gif了,虽然我会做^ ^,具体情况你遇到了就知道我说的是什么,没遇到这篇文章对你也没有价值。

具体来说就是,我APP中根视图导航栏是透明的,二级页面导航栏是不透明的,在页面切换的时候会看到黑块,这个在加入了手势后更加明显,总之就是页面切换不平滑,这让有强迫症的我怎么看的舒服。

之前一直没有很好的解决办法,后来在看到《一个丝滑的全屏滑动返回手势》后,里面一句话提醒了我,是讲手机QQ的页面切换的,“它的个人中心页面上面的 bar 是隐藏状态,然后做了个和其他页面很像的假 bar,但返回手势一开始就露馅了,为了弥补,还做了下后面真 bar 的 alpha 值动画,两个返回按钮还是重叠在了一起。”,于是,就有思路了,我在页面出现的时候隐藏真正的NavigationBar,让自己添加的假的NavigationBar占坑,并配置透明,页面结束的时候,设置真的NavigationBar显示,这样不影响二级页面导航栏的显示,几处代码贴下

@property (weak, nonatomic) IBOutlet UINavigationBar *customNavigationBar;

- (void)initCustomNavigationBar {
    self.customNavigationBar.translucent = YES;
    //去掉背景图片
    [self.customNavigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
    //去掉底部线条
    [self.customNavigationBar setShadowImage:[[UIImage alloc] init]];
    //调整偏移inset,使得图片能从屏幕顶部开始显示,显示在导航栏下面
    self.automaticallyAdjustsScrollViewInsets = NO;
}


//对导航栏隐藏的设置,避免子页面缺失
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

大概就是这个样子,真正是困扰自己很久了,这个问题

当然我也使用了文章作者的FDFullscreenPopGesture,这样在每个界面都有了右滑返回的手势,不用自己添加了,听说是用了AOP,这个我不太懂,找时间看下,反正添加两个文件后就自带了手势(听说用了私有API,到时候注意下)。



参考资料:

1.一个丝滑的全屏滑动返回手势:http://blog.sunnyxx.com/2015/06/07/fullscreen-pop-gesture/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值