Is there any way to have different barTintColor
of UINavigationController
's UINavigationBar
on different pushed controllers with smooth color transition animation?
I'd like to have a smooth animation of UINavigationBar
's tint color during UINavigationController
's push/pop animation and ideally also interactive pop (gesture based controller pop).
Why do I need this? I'd like to have 1 controller in the navigation stack to have different tint color indicating status of some task (red / green etc.).
What I have tried so far:
viewWillAppear
(view lifecycle) methods, but there is no way to animate the barTintColor
(like setBarTintColor:animated:
)
- To change
barTintColor
in [UIView animation...]
block, but that just weirdly animates frame of (probably) some background layer instead of smooth color transition.
- To change
barTintColor
in [UIView transitionWithView:...]
block with UIViewAnimationOptionTransitionCrossDissolve
, but that does not animate change. Just instantly changes to new tint color after the animation duration
- I had an idea of implementing new iOS 7 custom transition calculating and changing color of navbar during progress, but that seems to be big overkill (specially if I want to keep original animation appearance everywhere)
Thank you everyone for any ideas and answers
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…