Фон
Варианты этого вопроса задавались ранее, но я не могу найти ответ, относящийся конкретно к SKScene
.
Я создаю универсальную игру , с которой я хочу работать на всех поддерживаемых устройствах iOS в альбомной ориентации. Моя сцена размером 750x1334.
Я хочу безопасно разместить спрайт ниже метки, если устройство представляет собой iPhone X
как показано ниже:
В идеале я хочу сохранить значение safeAreaInsets.top
в переменной topPadding
, которая будет использоваться в сцене. Это значение будет учитывать метку, если iPhone X, но будет 0, если любая другая модель. Примерно так:
let spritePosY = (myScene.size.height / 2) - (mySprite.size.height / 2) - topPadding
Покушение
У меня есть значение safeAreaInsets.top в методе viewDidLayoutSubviews (ниже), однако, поскольку оно вызывается после размещения подпредставлений, я не знаю, как использовать это значение при настройке сцены?
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if #available(iOS 11.0, *) {
topPadding = view.safeAreaInsets.top
bottomPadding = view.safeAreaInsets.bottom
}
}
Я иду не в ту кроличью нору? Есть ли более простой способ добиться этого?