![](/img/trans.png)
[英]ios7 presentViewController reverts navBar from new 64px bar back to old 44px version
[英]iOS7 NavigationBar visually grows from 44 to 64 points every segue
我正在使用Three20(ack!)編寫的舊代碼庫。 現在,我們需要能夠將此應用程序部署到iOS7和iOS6。
通常,它是可行的,但是當用戶點擊並在視圖控制器之間進行切換時,在過渡動畫期間會使用44點導航欄來繪制導航欄,但是當動畫結束時,它將捕捉到64點高。
因此,切換視圖...平滑...黃油... 猛擊 。 洗滌,漂洗,重復。
在任何iOS 7 iPhone大小的設備上,從一種視圖切換到另一種視圖時,都會產生顫抖的效果。 有趣的是,它僅在從一個視圖切換到另一個視圖時發生,而不是在切換到當前ViewController的新實例時發生。
我會顯示代碼,但不確定要顯示什么代碼。
我非常感謝所有指示(RTFM評論很高興被接受),這次我的Google-fu讓我失敗了。
視圖層次結構如下所示:UIScreen TTNavigatorWindow UILayoutContainerView UINavigationTransitionView UIViewControllerWrapperView UIView TTTableView UITableViewWrapperView ...依此類推...
這是three20問題,其中three20假定導航欄始終高44點,但現在不是嗎?
這是Interface Builder的問題,其中導航欄只能在44個點處創建,並且應該在我的代碼中很好地解決這一問題嗎?
這是否是一個深奧的iOS 7問題,因為Navigator位於頂層,因此需要定期更改高度嗎?
這是一個文檔問題,我的(顯然是微不足道的)觀察力只是沒有看到Apple文檔中的相關內容?
謝謝,
-肯
首先,我想建議您擺脫Three20。 我知道這對您的情況不是很有幫助,但確實如此。
但是,我想向您提供兩種可能發生的想法:
Three20確實在各個地方都使用了硬編碼的導航欄大小,但是我認為這不會引起您在此處描述的問題。 盡管可以肯定,但我可能會在其他地方導致iOS7問題。
根據您的描述,這聽起來像是iOS7計算導航欄高度的方式。 某種程度上可以推測Three20如何管理視圖的原因,使其對於普通的UIKit可以正常工作。 如果將整個視圖堆棧向屏幕底部向下移動1 px,會發生什么情況? 我猜想,導航欄不會更改其大小。 要了解這一點,請看一下iOS7如何計算導航欄高度 。 我想您想擁有的是整個動畫中的64像素導航欄。 我必須弄清楚如何在動畫之前修改顯示的視圖控制器的框架以實現該效果。
我希望其中一些想法會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.