1

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

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

1 回答 1

0

我建议将您的代码从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

于 2016-07-08T22:08:09.310 回答