隐藏状态栏时 UIView 不会调整大小
Posted
技术标签:
【中文标题】隐藏状态栏时 UIView 不会调整大小【英文标题】:UIView doesn't resize when hiding the statusBar 【发布时间】:2010-10-13 12:25:53 【问题描述】:一切都在标题中,这里有一些我尝试过的东西:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self setWantsFullScreenLayout:YES];
[[self view] setNeedsLayout];
CGRect frame = self.view.frame;
frame.size.height += 20.0;
[[self view] setFrame:frame];
你能告诉我该怎么做吗?我认为这可能是代码中的其他内容,因为有了一个简单清晰的项目,它就可以工作了。
【问题讨论】:
我在这里找到了答案:***.com/questions/1110052/… UIView doesn't resize to full screen when hiding the nav bar & tab bar的可能重复 【参考方案1】:您可能需要更改框架的位置以及高度。
frame.origin.y -= 20.0;
frame.size.height +=20.0;
【讨论】:
没有。我打印了框架以确保:0.000000 -20.000000 320.000000 387.000000。我的视图位于导航控制器中,如果有帮助,它位于 tabbarcontroller 中 您可能需要调整根控制器的框架,使 tabbarcontroller 听起来像,然后您需要调整导航控制器框架的大小。它们都需要为 0,0,320,480 才能全屏显示。这假设标签栏和导航栏是我认为它们各自的控制器主视图的子视图。 我确实更改了 tabBarController.view.frame,但它不起作用。此外,我确实更改了背景,但没有一个显示为绿色。我的状态栏留下的空间是白色的…… 这可能是你的 UIWindow 你看到的白色,因为它是默认的窗口背景颜色。你确定tabbarcontroller主视图的位置是0,0【参考方案2】:您是否为 UIView 的以下属性赋值?
@property(nonatomic) BOOL autoresizesSubviews @property(nonatomic) UIViewAutoresizing autoresizingMask我之前使用过 Ben 的方法来解决状态栏的问题,但我认为它应该有另一种优雅的方法。
【讨论】:
我使用 Interface Builder,所以我手动设置了调整大小的蒙版。适用于隐藏状态和导航栏时被推到顶部的其他 UI 元素以上是关于隐藏状态栏时 UIView 不会调整大小的主要内容,如果未能解决你的问题,请参考以下文章