【问题标题】:How do I disable landscape-orientation on an iPad app?如何在 iPad 应用程序上禁用横向?
【发布时间】:2016-02-08 23:39:55
【问题描述】:

我创建了一个全新的单视图 iOS 通用 Swift 应用。然后,我在应用程序设置中取消选中“横向左侧”和“横向右侧”。我在我的 iPhone 上运行它,万岁,无论我如何旋转手机,它都保持纵向模式。然后我在我的 iPad 上运行它,它可以旋转到任何东西。甚至是一开始就没有启用的倒立人像模式?只有我有这种经历吗?当我使用命令+箭头键旋转时,这也发生在 iPad 模拟器中。

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

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

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.Portrait
}

有没有办法在 iPad 上真正禁用旋转远离纵向?

【问题讨论】:

  • 制作通用应用时,iPad和iPhone的方向设置是分开的。再次检查您是否也禁用了 iPad。

标签: ios swift xcode landscape


【解决方案1】:

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

首先选择项目,然后进入第一个选项卡“常规”。

现在在部署信息部分选择“设备”选项是 iPad,然后在该选项下方选择 设备方向 ..从横向左、右选项中删除复选标记

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

现在在 iPad 上运行您的应用并检查这些内容。希望能解决。

【讨论】:

  • 确保为 iPad 选中“需要全屏”框,否则您的应用将无法通过验证。
【解决方案2】:

这张图就够了,只选人像吧。


编辑 Shyam 的评论

Xcode8.3.3 MacOS Sierra v10.12.5

【讨论】:

  • 设备模式为通用,除纵向外,取消选中“设备方向”。并在 iPad 设备上运行应用程序,观察结果对我来说有点奇怪,方向仍在发生。
  • @KkMIW 你的 appdelegate 设置是什么。你的方向设置是什么。参考我这篇帖子stackoverflow.com/q/43773075/6521116
  • 我解决了这个问题 -> 打开常规选项卡将设备更改为 iPad 默认选择所有方向选项,取消选择左右横向的方向,然后再次将其更改回通用。运行应用程序(赶紧解决)。
  • @KrisRoofe,不用担心。感谢您的宝贵时间。
  • 谢谢!最简单也是最好的答案。
【解决方案3】:

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

  • iPhone = UISupportedInterfaceOrientations
  • iPad = UISupportedInterfaceOrientations~ipad

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

【讨论】:

  • 这是最好的答案。我在常规设置中选择了“人像”,但该应用程序仍会在 iPad 上旋转,但不会在 iPhone 上旋转。更改 Info.plist 完成了这项工作。我想知道为什么要更改 2 个设置来完成一件事!
  • 像魅力一样工作!谢谢!
  • 当我删除并尝试将应用程序提交到应用程序商店时,应用程序验证出现错误。它说对于 ipad,它需要所有 4 个条目...有没有办法绕过它?并成功提交应用?
  • 是的 - 如果您勾选“需要全屏”选项,您可以将其锁定为单一方向。
  • 它只是在你之后运行它时将它们添加回来
【解决方案4】:

适合我!

打开info.plist作为源代码,你会看到这些属性:

  • UISupportedInterfaceOrientations : 适用于 iPhone
  • UISupportedInterfaceOrientations~ipad : iPad 版

UISupportedInterfaceOrientations~ipad 下删除不需要的方向模式。就我而言,我只想要肖像模式,所以我删除了其余模式,然后保存它。

完成!祝你好运

【讨论】:

  • 它也对我有用,因为这个错误仍然存​​在于 Xcode 11.2 中,但它适用于每个 Xcode 版本。
  • 完美运行:)
  • 此外,如果您还没有设置“需要全屏”,则必须将其设置为 true。否则您的应用将无法通过 App Store Connect 验证,您将看到此错误 stackoverflow.com/questions/32559724/…
【解决方案5】:

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

【讨论】:

    【解决方案6】:

    这些覆盖过程现在不起作用.. 仅在 info.plist 中更改 ipad 的 UI 支持的界面方向只会暂时解决问题,但是当您去应用程序验证和应用程序提交到应用程序商店时会产生问题.. 要成功验证和提交,您还必须添加密钥

    “UIRequiresFullScreen”

    你必须像这样修改键..

    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
    </array>
    <key>UIRequiresFullScreen</key>
    <true/>
    

    我已经测试过了……

    【讨论】:

      【解决方案7】:

      xCode 11

      项目 ----> 常规 -----> 设备 ---->iPad

      【讨论】:

        【解决方案8】:

        使用 Xcode 11

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

        例如,通过选择only iPhone 设置iPhone 部署信息。

        然后通过选择only iPad 来选择iPad 部署信息。删除此处的景观选择。

        完成后,如果您需要 iPhone 和 iPad 设置,请同时选择它们。即使 iPhone 和 iPad 不同,这些设置也会保留(显示 iPhone 的方向设置,但 iPad 保留)。

        仅翻转回 iPad 将显示设置仍然存在。

        info.plist 还将反映使用部署信息对 iPhone 和 iPad 所做的更改。

        【讨论】:

        • 哇,谢谢。这是我见过的最令人困惑的设置之一。
        • 非常感谢!多么反直觉的用户体验,Apple 真的让我有不同的想法……
        【解决方案9】:

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

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

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

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

        下面是您需要执行的操作的屏幕记录:

        具体来说:

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

        【讨论】:

        • 设备方向复选框令人困惑。我启用了 iPhone 和 iPad,并选中了肖像,假设两者都适用,但我必须取消选中 iPhone,然后取消选中默认未显示的所有其他启用的 iPad 方向,然后重新检查 iPhone.. .
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多