iOS 同navigationController下 不同vc不同颜色导航栏的push/pop 渐变过渡

苦于设计师老喜欢在一个app里设置两种不同颜色的vc 风格.

navigationBar的颜色还能通过把navigationBar的背景设置为透明再在vc中搭颜色

但navigationBar中的按钮,标题等  都无法很好地独立控制

除非把navigationBar加在vc中,让vc完全独立控制

这又失去了iOS 过渡动画的一些特性,看着不爽

比较理想的是微信的效果,能在push/pop动画中渐变修改不同状态下的颜色来达到不同风格效果

效果如下

注意看那个返回按钮的箭头颜色

于是...

需每个vc独立控制当前显示navigationBar的颜色配置,可在每个viewWillAppear中使用

    [self.transitionCoordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {
        self.navigationController.navigationBar.tintColor = [UIColor blueColor]; //控制按钮颜色
        self.navigationController.navigationBar.barTintColor = [UIColor orangeColor]; //控制导航栏背景色 按需设置
    } completion:^(id<UIViewControllerTransitionCoordinatorContext>  _Nonnull context) {
    }];
posted @ 2019-12-25 12:49  老徐想减肥  阅读(1269)  评论(0编辑  收藏  举报