Различия фонового изображения iOS spriteNode между ios 7 и ios 8

я столкнулся с этой проблемой на iOS (objective-c, а не быстрый). Я загружаю фоновое изображение из images.xcassets, и оно правильно отображается на iOS 8, но не на iOS 7. Кто-нибудь сталкивался с этой проблемой раньше?

Это код, который я использую:

    SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"xxx"];
    background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
    [self addChild:background];

В макетах тоже есть отличия (я не пользуюсь ксибами), но первым делом надо решить фон :).

Ниже приведены скриншоты из ios 7 % ios 8. введите здесь описание изображениявведите здесь описание изображения

Вот скриншоты с images.xcassets:

введите описание изображения здесьСпасибо, хорошего дня, Алекс.


person alexsc    schedule 06.11.2014    source источник
comment
Не могли бы вы объяснить более подробно, почему изображение не отображается должным образом?   -  person ZeMoon    schedule 06.11.2014
comment
в images.xcassets у меня есть изображение для iphone @2x, 960x640, в ios8 вроде все работает нормально, но в ios 7 изображение больше   -  person alexsc    schedule 06.11.2014
comment
Вам нужно опубликовать больше кода, связанного с настройкой вашего SKScene. Скриншоты были бы очень кстати.   -  person ZeMoon    schedule 06.11.2014
comment
проверьте масштаб сцены, я считаю, что значение по умолчанию могло измениться, поэтому попробуйте установить его явно   -  person LearnCocos2D    schedule 06.11.2014
comment
добавить стартовое изображение для iPh5: размер 640 x 1136 пикселей и имя [email protected]   -  person TonyMkenu    schedule 06.11.2014
comment
спасибо за ваш ответ, я обновил скриншоты, изображения запуска правильно добавлены в images.xcassets   -  person alexsc    schedule 06.11.2014
comment
у вас изображения не закрывают весь экран... или фоновое изображение как на скринах (раньше были другие)? В любом случае.. Я говорю об изображениях запуска, а не о фоновых изображениях.   -  person TonyMkenu    schedule 06.11.2014
comment
эта проблема была из launchImages, мое изображение, как на скриншотах. Кстати, также протестировано масштабирование сцены на SKSceneScaleModeAspectFit - такое же поведение   -  person alexsc    schedule 06.11.2014
comment
1) попробуйте режим масштабирования на SKSceneScaleModeResizeFill 2) попробуйте пометить ваши изображения (1x, 2x, 4-2x..), чтобы увидеть, правильно ли они загружены   -  person TonyMkenu    schedule 06.11.2014
comment
я только что обновил ответ, спасибо за ваше внимание!   -  person alexsc    schedule 10.11.2014


Ответы (1)


Кажется, что ios 7 не распознает, что ваше приложение запускается в ландшафтном режиме, поэтому рамка инициализируется с портретными размерами. Я решил это следующим методом:

- (CGSize)screenSize {
    CGSize screenSize = [UIScreen mainScreen].bounds.size;
    if ((NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
        return CGSizeMake(screenSize.height, screenSize.width);
    }
    return screenSize;
}

Вы можете узнать больше, выполнив поиск по запросу «ориентация-зависимость» в iOS 8. Надеюсь, это будет полезно и для вас.

person alexsc    schedule 10.11.2014