在WWDC 2017的SceneKit会话中,他们建议使用overlaySKScene来覆盖SceneKit上的SpriteKit层,用于HUD等。在我旋转iPhone/iPad之前,它似乎运作良好。现在,在旋转设备时,SpriteKit中的所有文本都被拉伸了(如果从纵向变为横向)或缩小了(如果从横向变为纵向)。有没有办法保持文本或图形大小不受方向影响?
sceneView.overlaySKScene = SKScene(size: sceneView.frame.size)
我以一种非常简单的方式解决了这个问题。只需要调整overlaySKScene的大小并重新定位所有内容即可。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
let width = sceneView.frame.height
let height = sceneView.frame.width
sceneView.overlaySKScene?.size = CGSize(width:width, height:height)
...
}
希望这可以帮助其他遇到类似问题的人。