在iOS 7中,如果視圖控制器呈現的視圖背景色爲[UIColor clearColor]
,則動畫變得非常不連貫/凍結一半。UINavigationController動畫波濤洶涌
我想知道是否還有這個問題?
在iOS 7中,如果視圖控制器呈現的視圖背景色爲[UIColor clearColor]
,則動畫變得非常不連貫/凍結一半。UINavigationController動畫波濤洶涌
我想知道是否還有這個問題?
這真的很有趣。不過,我認爲它並不波動:這是導航控制器正在執行的實際動畫,而且它看起來不同,因爲推送的視圖控制器具有清晰的視圖。
在類似的情況下考慮兩個不透明的視圖控制器(爲了便於參考,稱它們爲「A」和「B」)。給一大堆內容跨越視圖的整個寬度 - 我在標籤中使用了大部分字母。無論什麼內容,只要你能看到它,並明確地告訴它在動畫結尾附近有多遠。
現在按下B鍵。在它覆蓋整個屏幕之前,先看看A的哪些內容仍然可以看到。你應該會發現,A的內容幾乎不像你期望的那樣脫離屏幕。相反,它只是向左移動了一點點。在我的字母表測試中,我沒有看到像「w」這樣的延遲字母的末尾,而是看到了一些「g」字樣。只有A移位的六個或七個字母的價值:
同樣的事情發生在這裏與你清楚推視圖。底層的不透明視圖會移動,但不會完全離開屏幕邊緣;相反,它只是移動給觀衆的運動的印象,然後坐在那裏,直到過渡完成。之後,它可以從視圖層次結構中刪除(因爲它理論上不再可見),因此消失。
您可以通過使用iOS 7視圖控制器轉換API來規避這種行爲。例如,請參閱objc.io article about them或WWDC session videos瞭解更多信息。不過,您將完成重新實現整個幻燈片切換過程,並且可能還需要完成自己的工作以支持再次滑動手勢。
感謝您的詳細迴應! – 0xSina
我也是,面對這個問題。我發現,在通過自定義動畫修復:
你一定背景色是實際的原因是什麼?你是否嘗試過改變顏色並且看到不同的結果? – nhgrif
@nhgrif是的,自己試試。推一個視圖控制器的背景顏色設置爲clearColor,你會看到。 – 0xSina
@ 0xSina我剛試過。它不是緩慢或波濤洶涌,但它看起來很糟糕,推動視圖位於頂部,後視圖立即消失。 – Can