在 UIViewController 中居中 SKView:Swift

Center SKView in UIViewController: Swift

我正在使用以下代码在视图控制器上加载 SKView。但是,当您第一次加载应用程序时,场景中的按钮、标签等会显示在最左下方。但是,在游戏中,当你 return 到场景时,它居中,我该如何解决这个问题?

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

我建议将您的代码从 viewDidLoad 移动到

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 将在视图重新定位自身或调整大小时被调用