背景
以前曾问过这个问题的各种变化,但我似乎找不到与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
}
}
我在这里走错了兔子洞吗?有没有更简单的方法可以做到这一点?