我的应用程序是一个基于UITabBarController的应用程序,有3个孩子vc。状态栏与我的viewcontrollers重叠。我已经尝试了在SO中找到的所有内容:
我尝试将其添加到我的AppDelegate:
//向下偏移以为状态栏腾出空间 self.window.bounds = CGRectMake(0,-20,self.window.frame.size.width,self.window.frame.size.height);
它起作用了,因为它将整个UITabBarController向下移动了20个。但是这导致标签在底部被-20切断。
所以我想我只想将效果应用到每个标签中的UIViewControllers,因为底部没有太多要切断。
所以我尝试在viewDidLoad中添加类似的代码,然后调用setNeedsDisplay:
self.view.bounds = CGRectMake(0,-20,self.view.frame.size.width,self.view.frame.size.height);
但这根本没有效果,仍然会重叠。
我尝试将其添加到viewDidLoad
self.edgesForExtendedLayout = UIRectEdgeNone;
我也取消选中了顶栏下的延伸边,但它仍然会进入状态栏。还尝试过:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
但没有雪茄。
我没有增量,因为我正在使用AL。
我不想隐藏我的状态栏,因为它显示打开/关闭时间,因此用户会发现能够看到时间非常方便。
我想在每个需要它的viewcontroller中将视图向下移动是最好的选择,但为什么我的代码不能用于#2?
(顺便说一下:不确定为什么代码格式不起作用且编号关闭,即使我尝试编辑它,它似乎在编辑视图中正常工作但在预览或实时视图中没有工作)< / p>
答案 0 :(得分:1)
用于iOS 7,xcode 5用于避免重叠
使用
viewDidLoad方法
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
答案 1 :(得分:0)
嗯,我和你有同样的问题。 我用很多动作修好了它。 我使用红宝石动作:
@window.bounds = CGRectMake(0, -20, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height - 20)
@window.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)
....
tabBarController.view.bounds = CGRectMake(0, 20, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height - 20)
让我知道你的结果如何。
更新: 附上屏幕截图: