如何在iPad应用中禁用横向?

Eug*_*ene 33 xcode landscape ios swift

我创建了一个全新的,单视图iOS通用Swift应用程序.然后,我在应用程序设置中取消选中"Landscape Left"和"Landscape Right".我在我的iPhone上运行它,并且万岁,无论我如何旋转手机,它都保持纵向模式.然后我在我的iPad上运行它,它旋转到任何东西.甚至颠倒的肖像模式,首先没有启用?我是唯一体验过的吗?当我使用命令+箭头键旋转时,这也发生在iPad模拟器中.

我也尝试将以下内容添加到ViewController.swift中,并得到了相同的结果.

override func shouldAutorotate() -> Bool {
    return false
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Portrait
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在iPad上实际禁用旋转画像?

Pav*_*dhi 79

它的工作完美.不需要为它编写代码.

首先选择项目,然后进入第一个选项卡"常规".

现在选择部署信息部分中的"设备"选项是iPad,然后在下面选择设备方向 ..在其中从横向删除复选标记左,右选项

完成后选择将设备作为通用设备并将设备方向设置为纵向..模式并从横向模式中删除复选标记.

现在在iPad上运行你的应用程序并检查一下.我希望它会得到解决.


Mar*_*rcy 26

使用 Xcode 11

iPhone 方向设置和 iPad 方向设置可以使用部署信息设置独立设置。无需更新 info.plist 以进行定位。更新部署信息将为您更新 info.plist。(这不直观,可能会被忽略)

例如,通过选择iPhone来设置 iPhone 部署信息。 在此处输入图片说明

然后通过选择 iPad 来选择 iPad 部署信息。删除此处的景观选择。 在此处输入图片说明

然后完成后,如果您需要 iPhone 和 iPad 设置,请同时选择它们。即使 iPhone 和 iPad 的设置不同,这些设置也会保留(iPhone 的方向设置会显示,但 iPad 的设置会保留)。 在此处输入图片说明

仅返回 iPad 将显示设置仍然保留。 在此处输入图片说明

info.plist 还将使用部署信息反映对 iPhone 和 iPad 所做的更改。 在此处输入图片说明

  • 哇谢谢。这是我见过的最令人困惑的设置之一。 (7认同)
  • 非常感谢!多么反直觉的用户体验,苹果真的让我有不同的想法...... (2认同)

Tom*_*żak 25

Info.plist中有单独的条目,适用于iPhone和iPad支持的方向.

  • iPhone = UISupportedInterfaceOrientations
  • iPad = UISupportedInterfaceOrientations~ipad

您需要修改Info.plist并删除UISupportedInterfaceOrientations~ip键的横向条目.

  • 这是最好的答案.我在常规设置中选择了"肖像",但应用程序仍然可以在iPad上旋转,但不能在iPhone上旋转.更改Info.plist完成了这项工作.我想知道为什么要改变2个设置才能完成一件事! (2认同)

EK *_*uon 14

适合我!

info.plist作为源代码打开,您将看到以下属性:

  • UISupportedInterfaceOrientations :对于iPhone
  • UISupportedInterfaceOrientations~ipad :对于iPad

全方位模式

UISupportedInterfaceOrientations~ipad删除您不需要的定向模式.在我的情况下,我只想要肖像模式,所以我删除了其余模式,然后保存.

仅限人像模式

完成!祝好运


Hug*_*otl 7

由于支持拆分视图,已接受的答案不适用于 iOS 13 及更高版本。

基本上,Supported Interface Orientations如果您已Enable Multiple Windows设置为,则 iPad 上的设置将被忽略TRUE。这里的基本原理是,如果您允许您的应用程序在拆分视图中工作,那么它可以被压缩到它需要支持的“奇数”维度。所以默认情况下它需要支持任何方向。

这有点不直观,但由于上述原因,您需要在 PLIST 文件中设置Enable Multiple WindowsFALSE

这对于仅限 iPhone 的应用程序来说尤其不直观,因为您不会无理地假设 iPhone 设置会延续到 iPad,当然前提是您没有像此处的其他答案所记录的那样设置单独的 iPad 方向设置。

因此,这是您需要执行的操作的屏幕记录: 如何支持仅限纵向的 iPhone 或 iPad 应用程序

具体来说:

  1. 选择 iPad 并取消选择 iPhone
  2. 根据需要设置方向支持
  3. Un-set 支持多窗口
  4. 仅切换回 iPhone


Kri*_*ofe 6

此图像就足够了,仅选择人像即可。

设置人像模式


编辑Shyam的评论

Xcode8.3.3 MacOS Sierra v10.12.5

在此处输入图片说明

  • 我已解决问题->打开“常规”选项卡,将“设备更改为iPad”默认为其选择了所有方向选项,取消选择横向和横向的方向,然后将其重新更改为“通用”。运行应用程序(已解决)。 (3认同)

Nos*_*mus 5

至少在Xcode 10中,对于通用应用程序,此功能已被破坏。对于通过检查相关方向仅适用于iPhone来设置方向限制的通用应用,您需要进入plist并在“支持的界面方向(iPad)”下删除不需要的方向,在那里您会找到所有四个方向无论您检查了什么。这只是Xcode中的一个错误,由于已经存在了一段时间,因此显然没有很高的优先级。