【问题标题】:resize uinavigationbar push/pop viewcontroller size issue调整 uinavigationbar 推送/弹出视图控制器大小问题
【发布时间】:2009-12-07 13:53:45
【问题描述】:

我需要缩小 UINavigationBar 的高度(附加到 UINavigationController)

我已经通过 UINavigationControllerDelegate 的 navigationController:didShowViewController 方法完成了这项工作,并且运行良好。

问题在于主视图中的可见视图控制器。它并没有调整自身的大小以反映新的导航栏高度。因此,didShowViewController 方法也调整了 viewcontroller 的视图框架的大小,效果很好。

然而,当我去推动一个新的 ViewController 或弹出时,我总是看到在动画过渡到下一个视图期间视图向下移动到原始位置。然后,由于我在 NavControllerDelegate 中的 didShowViewController 中的代码,它会将其移回。

我很好奇确保降级永远不会发生的最佳方法。

我尝试将调整框架大小的代码放入 willShowViewController,但这并没有做任何事情。

我还确保作为正在弹出的 UIViewController 的视图的 UIView 框架也具有正确/移位的尺寸。不去那里。

这就像我需要在调用 pushViewController 之后,在调用 UINavigationController 的 didShowViewController 之前拦截绘图操作。

我已经盯着我的代码看了好几个小时了……什么也没有。希望这对外面的人有意义。

谢谢!!!

【问题讨论】:

    标签: iphone uiviewcontroller resize uinavigationbar frame


    【解决方案1】:

    我认为另一种选择是将 NavigationControllers navigationBarHidden 设置为 YES。这将完全隐藏导航栏,然后您可以在导航栏所在的位置绘制您想要的任何视图。只需将控件放在包装导航方法(推送、弹出等)的视图上。不过,让它具有与导航栏相同的样式可能是一个挑战。

    【讨论】:

    • 有趣的想法。所以您认为栏下方的视图(即表格视图)变回原始大小的问题将通过自定义导航栏来解决? (这是我最大的问题,如果我的原始评论不清楚,请见谅)
    • 啊,我认为你正在做某事......这可能是朝着正确方向的推动。稍后会报告。
    • 我已经能够使用这种方法走这条路——定义我自己的导航栏并隐藏“提供的工厂”。这是更多的工作,但要处理我需要的自定义,我必须这样做。非常感谢您的宝贵时间。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多