UINavigationController:将动画更改为条形颜色

问题描述:

我正在研究由主UINavigationController驱动的应用程序。第一个视图是一个表格视图,其中每个元素推入应用程序的不同部分。我希望每个部分都具有与主(第一个)视图不同的颜色方案,因此我希望UINavigationBar能够反映这种颜色变化。UINavigationController:将动画更改为条形颜色

我可以以编程方式更改UINavigationController的底层UINavigationBar在几个点之一(从根视图何时推入新视图,从viewDidLoad,viewWillAppear或viewDidAppear的新视图),但所有这些都会导致酒吧立即改变颜色。我留下来的是在推动动画发生之前或之后,闪烁到新颜色的条形图。

我想知道的是,如果有办法让这看起来更清洁。理想情况下,我希望新的条形颜色与新视图一起推入,就好像我推送的视图有自己的UINavigationBar手动添加到顶部,与UINavigationController的条形图分开。

+0

看看这个线程:http://*.com/questions/645232/transitioning-uinavigationbar-colors 这可能会帮助你。 – Jesper 2012-02-07 18:36:44

+0

我确实看到了这个线程,但是看起来他们似乎在讨论对style属性进行动画更改,这不是我所追求的。我确实尝试了他们建议的相同方法,但改为改变颜色,并且没有生成动画。 – nickbona 2012-02-07 18:46:40

+0

这就是我做到的:http://*.com/a/23301889/1388671 – Noel 2014-04-25 19:58:50

您可以通过将UINavigationBar扩展到您的自定义类,然后覆盖-(void)drawRect:(CGRect)rect方法并在其中实现颜色更新来达到目的。 不要忘记拨打setNeedsDisplay

祝你好运。