How to prevent SpriteKit overlay in SceneKit to stretch?

Viewed 710

In WWDC 2017 SceneKit session they recommend using overlaySKScene to overlay a SpriteKit layer over SceneKit for HUD, etc. It seems to work fine until I rotate the iPhone/iPad. Now the text in SpriteKit all got stretched (if turn from portrait to landscape) or shrunk (if turn from landscape to portrait). Is there anyway to keep the text or graphics in same size regardless of orientation?

    sceneView.overlaySKScene = SKScene(size: sceneView.frame.size)

I solved the issue in a very simple way. Just resize the overlaySKScene and reposition everything in

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)
    ...
}

Hope this helps others facing similar problem.

1 Answers
Related