iOS 方向改变时视图不会改变方向

iOS View does not change orientation on orientation change

我有一个根视图,其中包含一个滚动视图,其中包含一个(内容)视图。内容视图包含许多子控件。使用模拟器,当我改变方向时,none 视图,包括滚动视图改变方向。例如,下图以纵向模式开始,所有控件都可以正确播放,但切换到横向模式时,只会水平显示纵向模式:

所有这些都是使用 Interface Builder 布局的,因此除了一些 IB 控件外,我在控件视图文件中没有太多代码。

是否有某种约束阻止了所有控件和视图的重新定向?还是我总是必须在方向改变时手动布置它们?

首先,您需要通过勾选您想要的方向来检查您是否允许应用旋转:

  • 单击左上角(显示项目导航器)
  • Select你的项目名称
  • 看看General->Deployment Info->Device Orientation下有什么。
  • 相应地调整复选框。

更新:

同时在模拟器上向上滑动并检查设备的旋转是否未锁定。

尝试将其放入您的 AppDelegate/view 控制器中:

- (BOOL)shouldAutorotateToInterfaceOrientation:
  (UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

(我认为这不是 constraint/layout 问题,因为状态栏甚至没有旋转)