【问题标题】:View controller not autoresizing when status bar reappears状态栏重新出现时视图控制器不会自动调整大小
【发布时间】:2012-11-13 22:30:16
【问题描述】:

在状态栏最初可见的情况下,我添加了一个子视图并隐藏了状态栏:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[myController.view addSubview:anotherController.view];

在这个视图中,有一个按钮可以切换状态栏的可见性,但是当我再次将 statusBarHidden 设置为 NO 时,视图控制器的视图不会自动调整大小以考虑状态栏,并且作为结果视图被下推并被截断 20px。我已经为视图设置了所有适当的调整大小蒙版,还尝试了自动布局,但似乎都不起作用。我希望我的视图在显示/隐藏状态栏时自动调整大小,而无需手动设置其框架。

更新

我没有将其添加到根视图控制器的视图中,而是将其推送到导航控制器的堆栈中,并隐藏了状态栏和导航栏。然后我让用户选择只切换状态栏。但是问题依然存在,当状态栏重新出现时,视图被推送并切断了 20px。

但是当我旋转设备时,一切都在它的位置 - 只有当我在状态栏被隐藏后旋转设备时。

【问题讨论】:

    标签: ios cocoa-touch


    【解决方案1】:

    myController 是如何添加到窗口中的?假设 myController 是你的窗口的 rootViewController,那么这个控制器在显示/隐藏状态栏时应该正确调整大小。 anotherController 的视图应该以另一种方式添加,而不仅仅是添加它的视图。但是,如果您为该视图提供正确的调整大小标志,它也应该调整大小。但是,如果您将该控制器推送到导航控制器上,或者将其设置为新的 rootViewController 会更好。

    【讨论】:

    • 这很奇怪,因为它被添加到根视图控制器的视图中。我喜欢您关于将其推送到导航控制器上的建议,但问题仍然存在(请参阅我的更新答案)。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多