我需要缩小UINavigationBar的高度(附加到UINavigationController)
我通过UINavigationControllerDelegate的navigationController:didShowViewController方法完成了这个,并且它工作正常。
问题是主视图中的可见viewcontroller。它没有调整自身以反映新的导航栏高度。因此,didShowViewController方法也调整了viewcontroller的视图框架的大小,这可以正常工作。
但是,当我继续推动新的ViewController或弹出时,我总是看到视图在动画过渡到下一个视图期间向下移动到原始位置。然后,由于我在NavControllerDelegate中的didShowViewController中的代码,它将其重新启动。
我很好奇确保永远不会发生降档的最佳方法。
我尝试将调整框架大小的代码放入willShowViewController,但这没有做任何事情。
我还确保UIView的框架是正在弹出的UIViewController的视图,也是正确/移位的尺寸。不去那里。
就像我需要在调用pushViewController之后,以及在调用UINavigationController的didShowViewController之前拦截绘图操作。
我一直盯着我的代码几个小时&小时......没有到达任何地方。希望这对那里的人有意义。
感谢!!!
答案 0 :(得分:2)
我认为另一个选项是将NavigationControllers navigationBarHidden设置为YES。这将完全隐藏导航栏,然后您可以在该栏所居住的位置绘制您想要的任何视图。只需将控件放在包含导航方法的视图上(push,pop等等)。让它与导航栏具有相同的风格可能是一个挑战。