锁定 iPad 横向

lock iPad to landscape orientation

我有一个游戏,我只想在横屏模式下玩。这对 iPhone 没问题,但对 iPad 就不好了。我想我可以通过发布同一应用程序的两个版本来解决这个问题,一个用于 iPhone,一个用于 iPad。但是,进一步查看后我发现 iPhone 应用程序需要 iPad 准备好?我看到这个答案表明可以锁定 iPad 应用程序的方向:

Lock Ipad App in Landscape mode

这在 xCode 和 swift 的更高版本中是否仍然可行,如果是,如何实现?

您可以执行以下操作。在每个 ViewController class 的 viewDidLoad 方法中插入此代码。

if UIDevice.currentDevice().userInterfaceIdiom == .Pad {

            // this code will be executed if the device is an iPad
          override  func supportedInterfaceOrientations() -> Int {
              return UIInterfaceOrientation.LandscapeLeft.rawValue
         }

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

    }

接下来会发生什么

  1. 执行viewDidLoad函数并对if语句求值
  2. if 语句的条件为真,因此应该执行块内的语句
  3. 第一个覆盖函数会将方向设置为横向。您可以将其更改为 landscaperight
  4. 第二个函数将锁定方向旋转功能

注意:我希望您将所有视图控制器嵌入导航控制器并将此导航控制器链接到 class,然后在 class 的 viewDidLoad 方法中编写我给您的代码.这将为该导航控制器内的所有视图进行配置,而不是在每个 class

中键入它们

我相信这可以在 xcode

中文件导航器顶部蓝色文件中的部署信息中完成

如果必须锁定所有屏幕以及 iPhone 和 iPad 的方向,您可以直接在 Xcode 中轻松实现相同的目的。

进入 Targets>General>Deployment Info 和 select 所需的设备方向。请检查屏幕截图。

这样你的启动图像就不会有任何问题

为什么不直接从 "Supported interface orientations (iPad)"

下的 info.plist 中删除不需要的方向