2012-02-18 2 views
1

Я правильно переключаюсь и масштабируюсь iAd в режиме portraid и landscape, за исключением случаев, когда представление начинается из ландшафтного режима. В этом случае iAd остается узкой шириной, что соответствует портрету. Затем при повороте устройства на порт и обратно в ландшафт решается. Как его решить? Спасибо.iAd не подходит для ширины при запуске из ландшафтного режима

- (void)viewDidLoad 
{ 
    //iAd 

    adView =[[ADBannerView alloc] initWithFrame:CGRectZero]; 

    adView.requiredContentSizeIdentifiers = [NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil]; 

    adView.delegate = self; 

    [self.view addSubview:adView]; 

    [super viewDidLoad]; 
} 


- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration { 

    if (UIInterfaceOrientationIsPortrait(orientation)) { 
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
    } else { 
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; 
    } 

} 

ответ

1

Вы не укажете adView, с какой ориентацией начать, поэтому он начинается с ориентации по умолчанию.

Попробуйте добавить следующее в viewDidLoad:

if (UIInterfaceOrientationIsPortrait([UIDevice currentDevice].orientation)) { 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
} else { 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; 
} 
[self.view addSubview:adView]; 
+0

Теперь при запуске в ландшафтном режиме установлен правильно, но когда начинается с портрета подходит как пейзаж! – Jaume

+0

EDIT: если я изменил if и else содержимое, значит, ADBannerContentSizeIdentifierPortrait to Landscape и reverse, он работает! но я вообще не понимаю, должен работать, как вы предполагали, не так ли? – Jaume

+2

Он отлично работает до iOS6, где все это свойство становится устаревшим. Теперь проблема снова поднимается. –

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