我需要缩小 UINavigationBar(附加到 UINavigationController)的高度
我已经通过 UINavigationControllerDelegate 的 navigationController:didShowViewController 方法完成了此操作,并且工作正常。
问题在于主视图中的可见 View Controller 。它没有调整自身大小以反射(reflect)新的导航栏高度。因此, didShowViewController 方法还可以调整 View Controller 的 View 框架的大小,这可以正常工作。
但是,当我插入新的 ViewController 或弹出时,我总是看到 View 在动画过渡到下一个 View 期间向下移动到原始位置。然后,由于我在 NavControllerDelegate 的 didShowViewController 中的代码,它会将其移回原来的位置。
我很好奇确保永远不会发生降档的最佳方法。
我尝试将调整框架大小的代码放入 willShowViewController 中,但这没有任何作用。
我还确保 UIView 的框架(即正在弹出的 UIViewController 的 View )也具有正确/移动的尺寸。不去那里。
这就像我需要在调用pushViewController之后、调用UINavigationController的didShowViewController之前拦截绘图操作。
我已经盯着我的代码看了好几个小时了……一无所获。希望这对那里的人有意义。
谢谢!!!
最佳答案
我认为另一个选项是将 NavigationControllers navigationBarHidden 设置为 YES。这将完全隐藏导航栏,然后您可以在导航栏所在的位置绘制您想要的任何 View 。只需将控件放在包装导航方法(推送、弹出等)的 View 上即可。不过,让它具有与导航栏相同的样式可能是一个挑战。
关于iphone - 调整 uinavigationbar 推送/弹出 View Controller 大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1860121/