我最近遇到了这个应用程序的问题,我在试图使应用程序通用和纵向方向时遇到(之前的版本只在iPhone上使用) . 现在,应用程序将以纵向打开并且看起来正确,但在旋转设备时它仍处于纵向状态 .
这是我用于旋转设备的所有代码(有效):
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
但是,这只会旋转设备而不是我的游戏所在的实际GameScene . 如果应用程序是从横向主屏幕启动的,则游戏将保持在横向状态 .
出于测试目的,我可以退出并从模拟器主屏幕重新启动应用程序,游戏将再次完美地工作,直到设备旋转 .
How do I consistently present the GameScene in the correct orientation?
2 回答
正如Good Doug所说,尝试设置skView大小 .
在代码中,您将从gameViewController加载第一个场景,就像这样 . (如果你不使用场景sks文件,这是有效的)
此外,以纵向和横向运行游戏似乎是一个非常糟糕的主意,它会给你带来很多我甚至不会尝试的问题 .
您需要确保将包含
SKScene
的SKView
设置为与其包含框架的边界相匹配 . 您可以在InterfaceBuilder中或通过代码使用Autolayout执行此操作 .