2012-02-07 65 views
0

我正在研究由主UINavigationController驅動的應用程序。第一個視圖是一個表格視圖,其中每個元素推入應用程序的不同部分。我希望每個部分都具有與主(第一個)視圖不同的顏色方案,因此我希望UINavigationBar能夠反映這種顏色變化。UINavigationController:將動畫更改爲條形顏色

我可以以編程方式更改UINavigationController的底層UINavigationBar在幾個點之一(從根視圖何時推入新視圖,從viewDidLoad,viewWillAppear或viewDidAppear的新視圖),但所有這些都會導致酒吧立即改變顏色。我留下來的是在推動動畫發生之前或之後,閃爍到新顏色的條形圖。

我想知道的是,如果有辦法讓這看起來更清潔。理想情況下,我希望新的條形顏色與新視圖一起推入,就好像我推送的視圖有自己的UINavigationBar手動添加到頂部,與UINavigationController的條形圖分開。

+0

看看這個線程:http://stackoverflow.com/questions/645232/transitioning-uinavigationbar-colors 這可能會幫助你。 – Jesper 2012-02-07 18:36:44

+0

我確實看到了這個線程,但是看起來他們似乎在討論對style屬性進行動畫更改,這不是我所追求的。我確實嘗試了他們建議的相同方法,但改爲改變顏色,並且沒有生成動畫。 – nickbona 2012-02-07 18:46:40

+0

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

回答

0

您可以通過將UINavigationBar擴展到您的自定義類,然後覆蓋-(void)drawRect:(CGRect)rect方法並在其中實現顏色更新來達到目的。 不要忘記撥打setNeedsDisplay

祝你好運。