使用safeAreaInsets布局SKScene

时间:2018-08-25 12:32:40

标签: swift layout sprite-kit skscene safearealayoutguide

背景

以前曾问过这个问题的各种变化,但我似乎找不到与SKScene有关的答案。

我正在构建一个通用游戏,我希望该游戏适用于所有支持的iOS设备(横向)。我的场景是750x1334点。

如果设备是iPhone X,我想将精灵安全地放置在槽口下方 如下:

理想情况下,我想将值safeAreaInsets.top存储在要在场景中使用的变量topPadding中。如果使用iPhone X,则该值允许设置陷波值;如果使用其他型号,则该值为0。像这样:

let spritePosY = (myScene.size.height / 2) - (mySprite.size.height / 2) - topPadding

尝试

在viewDidLayoutSubviews方法中(下面)我有safeAreaInsets.top值,但是,由于在子视图布局后调用了该值,所以我不知道在设置场景时如何使用该值?

 override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        if #available(iOS 11.0, *) {
            topPadding = view.safeAreaInsets.top
            bottomPadding = view.safeAreaInsets.bottom
        }
    }

我在这里走错了兔子洞吗?有没有更简单的方法可以做到这一点?

0 个答案:

没有答案