我的应用程序是基于 UITabBarController 的应用程序,具有 3 个子 vc。状态栏与我的视图控制器重叠。我已经尝试了我在 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。
我不想隐藏我的状态栏,因为它会显示打开/关闭时间,因此用户会发现它可以方便地查看时间。
我想在每个需要它的视图控制器中将视图向下移动一点是最好的选择,但是为什么我的代码不适用于#2?
(顺便说一句:不确定为什么代码格式不起作用并且编号已关闭,即使我尝试编辑它,它似乎在编辑视图中工作正常,但在预览或实时视图中却没有)