【问题标题】:How to force Swift iOS game application to open up in landscape orientation? (GameViewController)如何强制 Swift iOS 游戏应用程序以横向打开? (游戏视图控制器)
【发布时间】:2017-06-18 23:19:47
【问题描述】:

我正在使用 Spritekit 在 iOS 中创建游戏,并且我希望我的游戏仅是横向的。但是,每次我在模拟器中测试我的游戏时,无论我尝试什么,它总是以纵向加载。我已经阅读了很多关于这个问题的堆栈溢出帖子,我尝试了以下方法但没有成功:

游戏视图控制器

override var shouldAutorotate: Bool {
    return false
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return [UIInterfaceOrientationMask.landscapeLeft, UIInterfaceOrientationMask.landscapeLeft]
}

请注意,我也尝试将 Autorotate 从 true 切换为 false。这也不起作用。

Xcode 工程文件

Xcode project file

Info.plist

Info.plist

这些都没有用

【问题讨论】:

  • 你的 Xcode 版本是多少?如果您在 macOS X 10.2.x 下使用 Xcode 8.3.x,则可能存在错误。
  • @ElTomato Xcode 9 beta Swift 4

标签: ios swift xcode ios-simulator


【解决方案1】:

尝试添加此功能:

func navigationControllerSupportedInterfaceOrientations(_ navigationController: UINavigationController) -> UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.portrait
}

【讨论】:

  • 我想要横向的
【解决方案2】:

使用UIInterfaceOrientationMask 设置方向。

 private var orientations = UIInterfaceOrientationMask.landscapeLeft
    override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
        get { return self.orientations }
        set { self.orientations = newValue }
    }
    override func viewDidLoad() {
        super.viewDidLoad()
    }

【讨论】:

  • newValue 我该放什么
  • @StevenCassidy newValue 是已定义的 LandscapeLeft,我编辑了答案。试试这个代码它会工作:)
  • 我应该把它放在我的视图控制器或我的场景中的哪个文件
  • @StevenCassidy 以您的情况先发生!
  • 模拟器仍在纵向加载,我可以在哪里发布视图控制器的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
相关资源
最近更新 更多