Положение узла iOS SpriteKit

Я новичок в наборе Sprite и хочу добавить в сцену какой-нибудь узел. Моя проблема в позициях:

Если я поставлю:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Poligon"];
sprite.xScale = 0.5;
sprite.yScale = 0.5;
sprite.position = CGPointMake(40, 400);

он выглядит правильно, когда iPhone находится в ландшафтном режиме, но когда он находится в портретном режиме, он исчезает с экрана.

Я предполагаю, что он берет координаты из ландшафта и помещает их в правую часть экрана. Это объясняет, почему узел не виден в портретном режиме.

Мой вопрос: как настроить iPhone по умолчанию в портретном режиме?


person Marko Zadravec    schedule 10.11.2014    source источник
comment
возможный дубликат как установить ориентацию после запуска на iPhone   -  person jonogilmour    schedule 11.11.2014
comment
Нет, это не так :D Мое приложение запускается в портретном режиме, но система координат установлена ​​так, как если бы оно работало в ландшафтном режиме.   -  person Marko Zadravec    schedule 11.11.2014
comment
Мой вопрос: как настроить iPhone по умолчанию в портретном режиме? эта ветка отвечает на этот вопрос. Я думаю, вам нужно перефразировать то, что вы имеете в виду точно.   -  person jonogilmour    schedule 11.11.2014
comment
Вы должны прочитать весь вопрос, а не только последнюю строку: я нашел вопрос, который поможет мне в ymc.ch/en/ios-7-sprite-kit-setting-up-correct-scene-dimensions   -  person Marko Zadravec    schedule 11.11.2014
comment
В вашем вопросе подробно рассказывается, как у вас возникают проблемы с координатами, когда устройство находится в альбомной ориентации, а затем вы спрашиваете, как сделать его по умолчанию портретным. Вы понимаете, почему это двусмысленно?   -  person jonogilmour    schedule 11.11.2014


Ответы (1)


По-видимому, спрайт-ребенок запускается в ландшафтном режиме и запускает viewDidLoad, прежде чем учитывать вращение. Из-за этого система координат в портретном режиме смещается, даже если вы устанавливаете портретную ориентацию.

введите здесь описание изображения

Решение согласно:

http://www.ymc.ch/en/ios-7-sprite-kit-setting-up-correct-scene-dimensions

заключается в том, чтобы установить вашу сцену не на viewDidLoad, а на

- (void)viewWillLayoutSubviews

Это запускается после установки ориентации и работает.

person Marko Zadravec    schedule 11.11.2014