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