显示带有动画的状态栏会导致视图向上移动 20px,因此它位于状态栏下方

Show status bar with animation causes view to move up 20px so its under the status bar

我有一个显示和隐藏状态栏的 UIViewController。隐藏状态栏没问题,但是当我使用以下方式显示状态栏时:

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

使视图的内容向上移动 20 像素,使其最终位于状态栏下方。我不知道我还能提供什么但是这个描述,所有发生的事情都是当我隐藏状态栏时,状态栏顶部有 20px 的白色 space(这就是我想要的)但是当我显示状态栏时,视图在状态栏下方向上移动(这不是我想要的)。希望在不影响 UIViewController 及其内容的情况下显示和隐藏状态栏。

我通过删除此 ViewController 上的自动布局解决了这个问题,并在 :

中手动设置了视图布局
-(void)viewDidLayoutSubviews

似乎可以解决问题。为@ThatGuy 将我推向正确的方向干杯。

我遇到了同样的问题。我设法在情节提要中修复了它。

向上移动的视图的顶部约束设置为顶部布局指南。我将其更改为指向 Superview.Top 并且视图停止移动。

要明确使用 Superview over top layout guide,您需要使用 Pin(故事板左下角的按钮)并在设置约束之前取消选中 "Constrain to margins"