2014-11-06 3 views
3

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

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

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

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

Ниже приведены скриншоты из КСН 7% 8. IOS enter image description here enter image description here

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

enter image description here спасибо, великий день, Алекс.

+0

Не могли бы вы более подробно объяснить, как изображение не отображается должным образом? – ZeMoon

+0

in images.xcassets У меня есть изображение для iphone @ 2x, 960x640, в ios8 все работает нормально, но в ios 7 изображение больше – alexsc

+0

Вам нужно разместить больше кода, связанного с настройкой вашего SKScene. Скриншоты были бы наиболее полезными. – ZeMoon

ответ

0

Кажется, что 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; 
} 

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

Смежные вопросы