我有类似的UINavigationBar问题。
在一种情况下,它是在自定义拆分视图中(我们无法使用UIKit之一,因为iOS 5.0中缺少一些功能),并且还有将视图添加到另一个视图中的UINavigationController。
控制器层次结构的使用在这里有很多帮助,看起来iOS在决定如何布局UINavigationBar时也注意一些。我可以在操作系统定义正确的高度的情况下拥有一个UINavigationController,而不必将UINavigationBar与UIWindow的顶部连接起来,这样就可以做到。
然而,有一个问题,当视图第一次出现时,它有不正确的高度,然后自动增加,以自己有正确的高度64像素。
从一开始就以正确的高度获取视图的解决方案是首先定义具有整个屏幕宽度的视图,然后使用[UIViewController viewDidLayoutSubviews]方法来定义宽度为I的视图的框架通缉。
这意味着控制器以我想要的方式进行UINavigationBar的布局,然后我会更正视图的框架并且不会更改UINavigationBar的高度。
对于OP提出的具体情况,您可以做相反的事情。首先用宽度的一半来定义视图,这样在开始时条形很小,然后将宽度更改为所需的宽度。我在另一种情况下测试了它,它也起作用,但它没有动画,可能会导致我的解决方案失效。我建议改变宽度和x位置。
这是一个可怕的黑客,所以如果有人想出了一个解决方案,将允许我删除此代码,请分享。
现在似乎很明显... – maxhs