我有類似的UINavigationBar問題。
在一種情況下,它是在自定義拆分視圖中(我們無法使用UIKit之一,因爲iOS 5.0中缺少一些功能),並且還有將視圖添加到另一個視圖中的UINavigationController。
控制器層次結構的使用在這裏有很多幫助,看起來iOS在決定如何佈局UINavigationBar時也注意一些。我可以在操作系統定義正確的高度的情況下擁有一個UINavigationController,而不必將UINavigationBar與UIWindow的頂部連接起來,這樣就可以做到。
然而,有一個問題,當視圖第一次出現時,它有不正確的高度,然後自動增加,以自己有正確的高度64像素。
從一開始就以正確的高度獲取視圖的解決方案是首先定義具有整個屏幕寬度的視圖,然後使用[UIViewController viewDidLayoutSubviews]方法來定義寬度爲I的視圖的框架通緝。
這意味着控制器以我想要的方式進行UINavigationBar的佈局,然後我會更正視圖的框架並且不會更改UINavigationBar的高度。
對於OP提出的具體情況,您可以做相反的事情。首先用寬度的一半來定義視圖,這樣在開始時條形很小,然後將寬度更改爲所需的寬度。我在另一種情況下測試了它,它也起作用,但它沒有動畫,可能會導致我的解決方案失效。我建議改變寬度和x位置。
這是一個可怕的黑客,所以如果有人想出了一個解決方案,將允許我刪除此代碼,請分享。
現在似乎很明顯... – maxhs