【发布时间】:2013-10-09 12:56:44
【问题描述】:
有没有办法在不同的推送控制器上拥有不同的barTintColor 和UINavigationController 的UINavigationBar具有平滑的颜色过渡动画?
我希望在UINavigationController 的推送/弹出动画期间有一个平滑的动画UINavigationBar 的色调颜色最好还有交互式弹出(基于手势的控制器弹出)。
我为什么需要这个?我想在导航堆栈中有 1 个控制器具有不同的色调颜色来指示某些任务的状态(红色/绿色等)。
到目前为止我所尝试的:
-
viewWillAppear(查看生命周期)方法,但无法为barTintColor设置动画(如setBarTintColor:animated:) - 在
[UIView animation...]块中更改barTintColor,但这只是奇怪地为(可能)某些背景层的帧设置动画,而不是平滑的颜色过渡。 - 用
UIViewAnimationOptionTransitionCrossDissolve更改[UIView transitionWithView:...]块中的barTintColor,但这不会为更改设置动画。动画持续时间后立即更改为新的色调 - 我有一个想法,在进行过程中实现新的 iOS 7 自定义过渡计算和更改导航栏的颜色,但这似乎有点过头了(特别是如果我想在任何地方保持原始动画外观)
感谢大家的任何想法和答案
【问题讨论】:
-
您找到解决方案了吗?
-
不幸的是,我没有:-(
-
尝试在 all 视图控制器的
viewWillAppear方法中设置barTintColor。当barTintColor仅在第二个控制器中设置时,我遇到了这个问题。在所有控制器中设置时,条形色调颜色动画流畅(虽然没有测试交互式过渡)。
标签: cocoa-touch uinavigationcontroller ios7 uinavigationbar