如何为iPhone X发信箱SpriteKit游戏?

时间:2017-11-28 01:11:36

标签: ios iphone sprite-kit

我在SpriteKit开发了一款游戏。目前,该游戏涵盖了iPhone X上的整个屏幕。

我想将它设置为信箱,以便在纵向模式下在顶部和底部有黑色空间,在横向模式下在左,右和底部有黑色空间。基本上,我希望游戏包含在安全区域中。

实现这一目标的建议,最直接的方法是什么?

2 个答案:

答案 0 :(得分:5)

我在viewWillLayoutSubviews覆盖ViewController。这在目前是有效的,但我不确定这是否是正确的方法。反馈将不胜感激。

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    if #available(iOS 11.0, *) {
        if let window = view.window {
            view.frame = window.safeAreaLayoutGuide.layoutFrame
        }
    }
}

答案 1 :(得分:0)

这里是使用Obj-C的老派

SKView * skView = (SKView *)self.view;
UIWindow *window = [self.view window];
skView.frame = window.safeAreaLayoutGuide.layoutFrame; 
SKScene * scene = [GameScene sceneWithSize:skView.frame.size];
scene.scaleMode = SKSceneScaleModeAspectFill;