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

时间:2015-11-08 03:03:07

标签: ios swift xcode landscape

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

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

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

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

在iPad上无法实际禁用旋转画面吗?

9 个答案:

答案 0 :(得分:63)

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

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

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

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

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

答案 1 :(得分:18)

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

  • iPhone = UISupportedInterfaceOrientations
  • iPad = UISupportedInterfaceOrientations~ipad

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

答案 2 :(得分:15)

使用Xcode 11

可以使用“部署信息”设置分别设置iPhone方向设置和iPad方向设置。无需更新info.plist的方向。更新部署信息将为您更新info.plist。 (这不直观,可能会被忽略)

例如,通过选择 iPhone来设置iPhone部署信息。 enter image description here

然后通过选择 iPad选择iPad的部署信息。在此处删除景观选择。 enter image description here

然后,如果需要iPhone和iPad设置,请同时选择它们。即使设置不同,iPhone和iPad也会保留设置(显示了iPhone的方向设置,但保留了iPad的设置)。 enter image description here

仅翻转回iPad将显示设置仍然保留。 enter image description here

info.plist还将反映使用“部署信息”对iPhone和iPad所做的更改。 enter image description here

答案 3 :(得分:8)

为我工作!

打开 assert_equal read_fixture('textfile').join, email.text_part.body.to_s 作为源代码,您将看到以下属性:

  • info.plist:对于iPhone
  • UISupportedInterfaceOrientations:对于iPad

Full Orientation Modes

UISupportedInterfaceOrientations~ipad下删除您不需要的定向模式。就我而言,我只需要纵向模式,因此我删除了其余模式,然后保存。

Portrait Mode Only

完成!祝你好运

答案 4 :(得分:5)

此图片已足够,只能选择肖像。

set portrait mode

修改Shyam的评论

Xcode8.3.3 MacOS Sierra v10.12.5

enter image description here

答案 5 :(得分:5)

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

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

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

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

以下是您需要执行的操作的屏幕记录: How to support portrait-only iPhone or iPad app

特别是:

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

答案 6 :(得分:4)

这些替代过程现在无法正常工作..仅在info.plist中更改ipad的UI支持的界面结构只会暂时解决问题,但会在您进行应用验证和向应用商店提交应用时产生问题..为了成功进行验证和提交,您还必须添加密钥

“ UIRequiresFullScreen”

您必须像这样修改密钥。

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

我已经测试过了...

答案 7 :(得分:1)

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

答案 8 :(得分:0)

xCode 11

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

iPad