2011-11-26 87 views
2

我有一个视图在界面生成器中进行了布局。最初它在界面构建器中使用了一个添加到视图顶部的StatusBar。现在我决定摆脱状态栏,但是当我拨打iPhone隐藏StatusBar将视图向下移动20像素

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];  

我的观点仍然下降了20分。我的猜测是,我的UINavigationController没有得到消息,并保持我的视图在旧的位置。

任何人有一个深入了解什么可能会造成这个问题?

我想:

self.view.center = CGPointMake(self.view.center.x, self.view.center.y-21); This does not work. 

我已经试过:

self.view.center = CGPointMake(self.view.center.x, self.view.center.y-21); 

这工作,但使用TabBar之前离开的BUTTOM黑20像素酒吧。

我将如何过渡,而不必manualy调整由21px所有意见我认为一个状态栏少模式?

PS。如果我的视图中创建一个UINavigationController之前删除在应用程序委托状态栏中的视图是完全显示

+0

最后两个代码片段之间有什么区别? – Ryan

+0

你是否改变了xib的高度?的 –

+0

可能重复的[子视图下移20个像素中的AppDelegate调用时(http://stackoverflow.com/questions/2231719/subview-shifting-down-20-pixels-when-called-in-appdelegate) –

回答

8

您可能需要调用

[myViewController setWantsFullScreenLayout:YES]; 

这应该允许它拿起备用20像素。

+0

这似乎是我正在寻找! –

+2

请注意,即使您有状态栏,您也可能需要使用此选项:如果您有另一个VC的子视图中包含的VC,但未勾选此选项,IB似乎认为这些子VC的视图也需要20pt的填充。在这种情况下,“想要全屏”也意味着“填充进入控制视图”。希望这可以帮助别人...... –

+0

哈里是对的。至少为我自己。这是我需要的。我看到的缺陷是导航栏在隐藏状态栏后没有向上移动20px。 – Ryan

0

接口构建器有一个“模拟用户界面元素”选项。你还有'状态栏'模拟吗?如果实际视图不显示状态栏,则需要选择该选项。

+0

我已经取消选择该选项,但该视图仍然混乱。 –