iOS View 不会在方向更改时更改方向

标签 ios swift uiscrollview autolayout orientation

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

enter image description here

所有这些都是使用 Interface Builder 布局的,所以除了一些 IB 接口(interface)到控件之外,我在控件 View 文件中没有太多代码。

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

最佳答案

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

  • 点击左上角(显示项目导航器)
  • 选择您的项目名称
  • 查看 General->Deployment Info->Device Orientation 下的内容。
  • 相应地调整复选框。

更新:

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

尝试将其放入您的 AppDelegate/ View Controller 中:

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

(我不认为这是一个约束/布局问题,因为状态栏甚至没有旋转)

关于iOS View 不会在方向更改时更改方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34486143/

相关文章:

swift - 没有自定义单元格的自动单元格高度?

ios - 以编程方式在两个 subview 之间创建约束

swift - 如何以编程方式在 UIScrollView 中设置 StickyHeader

iphone - 更改 ftp 服务器 IOS 上的文件名

ios - 如何在表格 View 单元格中快速加载两个不同的布局

ios - 上传视频文件到服务器

ios - 如何旋转 "func renderer(SCNSceneRenderer, nodeFor: ARAnchor) -> SCNNode?"中的 SCNNode

ios - requestLocation 没有调用 didUpdateLocations

ios - 应用程序中运行的计时器在一段时间后开始延迟触发,原因未知

ios - 为什么没有记录约束标识符?