iphone - 调整 uinavigationbar 推送/弹出 View Controller 大小问题

标签 iphone uiviewcontroller resize uinavigationbar frame

我需要缩小 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/

相关文章:

iphone - 如何在 RootViewController 之外的另一个 View 上加载核心数据?

javascript - 如何检测窗口调整大小结束时的鼠标弹起?

css - 图像大小调整和大小适配

jquery - 调整窗口大小时保持表格纵横比

iphone - 在 iPhone 中裁剪星形图像

iphone - xcode 在 iOS 设备之间共享数据

ios - 如何更改压入堆栈的 View Controller 的标题颜色?

ios - 将 BOOL 声明为 iVar 或 Property 的最佳途径

iphone - 几秒钟后用改变颜色填充圆圈

ios - XCTest:点击 navigationItem 返回按钮