1

I'm using the following code to load an SKView on the view controller. However, when you first load the app the buttons, labels etc. In the scene show up at the very bottom left. But, in the game when you return to the scene, it's centered, how could I fix this?

import UIKit
import SpriteKit

class ViewController: UIViewController {

    override func loadView() {
        self.view = SKView()
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let scene = StartScene(size: view.bounds.size)
        let skView = view as! SKView
        skView.ignoresSiblingOrder = true
        scene.scaleMode = .resizeFill
        skView.presentScene(scene)

    }

    override func prefersStatusBarHidden() -> Bool {
        return true
    } 
}
tharkay
  • 5,913
  • 2
  • 26
  • 33
Nick Griffith
  • 492
  • 1
  • 6
  • 15

1 Answers1

0

I suggest moving the your code from viewDidLoad to

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    let scene = StartScene(size: view.bounds.size)
    let skView = view as! SKView
    skView.ignoresSiblingOrder = true
    scene.scaleMode = .resizeFill
    skView.presentScene(scene)
}

viewDidLayoutSubviews will be called whenever the view reposition itself or get resized

Karim H
  • 1,543
  • 10
  • 24