Ориентация устройства приводит к перевернутому расположению узла

Мой код очень прост. Я хочу изменить положение SKSpriteNode, чтобы он всегда оставался в правом нижнем углу экрана устройства. Я называю свой метод UIDeviceOrientationDidChangeNotification «повернутым» при вращении устройства, и он должен просто перемещать узел, но по какой-то причине он всегда переворачивает желаемое местоположение, поэтому альбомная позиция находится там, где должен быть портрет, и наоборот.

Мой код выглядит следующим образом:

UI

    - (void)rotated:(NSNotification *)notification {
            DeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
            if (UIDeviceOrientationIsLandscape(deviceOrientation) && !_isShowingLandscapeView)
                [self.node setPosition:bottom_right];
                _isShowingLandscapeView = YES;
            }
            else if (UIDeviceOrientationIsPortrait(deviceOrientation) && _isShowingLandscapeView)
            {
                [self.node setPosition:bottom_right];
                _isShowingLandscapeView = NO;
            }
        }

person Dante Hoyte    schedule 23.07.2015    source источник
comment
Откуда берется deviceOrientation?   -  person onnoweb    schedule 24.07.2015
comment
Извините, я пропустил эту часть, но она была включена в мой код. Проблема осталась, есть предложения? На самом деле мне даже не нужно проверять, пейзаж это или портрет, я должен просто указать правый нижний угол, но я только что попробовал это. Проблема в том, что когда я указываю нижний правый угол, он не появляется, и точка.   -  person Dante Hoyte    schedule 24.07.2015
comment
Как вы вычисляете bottom_right?   -  person onnoweb    schedule 24.07.2015
comment
CGSizeMake( self.size.width/2 - btn_wd/2, btn_ht/2 - self.size.height/2); Якорь для моих узлов и сцены находится в центре. Вот почему я вычисляю это так.   -  person Dante Hoyte    schedule 24.07.2015


Ответы (1)


Итак, то, что я делаю, просто. Просто используйте UIButtons поверх SKScene. Вернитесь к UIViewController, откуда вы вызываете skscene, и добавьте кнопки. Вам придется использовать центр NSNotification для передачи информации кнопкам, меткам и т. д.

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=8843

person Dante Hoyte    schedule 24.07.2015