У меня есть iAd, который отображается в верхней части полноэкранного подвида основного представления. IAd нормально работает в портретном режиме, и я обработал поворот баннера iAd в альбомный режим. Проблема возникает, когда пользователь нажимает на iAd в альбомном режиме. Тестовая реклама отображается на телефоне в портретной ориентации сбоку, и когда пользователь нажимает x, чтобы закрыть iAd, представление баннера и его родительское представление перемещаются за пределы экрана. IAd обычно ведет себя в портретном режиме (т.е. нажатие на него и закрытие приводит к нормальному отображению представления, содержащего баннер).
Что я пробовал:
- (void)bannerViewActionDidFinish:(ADBannerView *)banner{
NSLog(@"Ad was closed, show the adView again");
if(UIInterfaceOrientationIsLandscape(currentInterfaceOrientation)){
[self animateRotationToLandscape:0.3f];
}
else{
[self animateRotationToPortrait:0.3f];
}
}
-(void)animateRotationToPortrait:(NSTimeInterval)duration{
self.adView.currentContentSizeIdentifier =
ADBannerContentSizeIdentifierPortrait;
BOOL iPad = NO;
#ifdef UI_USER_INTERFACE_IDIOM
iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
#endif
if (iPad) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:duration];
proUpgradeDescription.frame = CGRectMake(82,313,604,110);
proUpgradePrice.frame = CGRectMake(313,576,142,28);
closeButton.frame = CGRectMake(348,834,72,37);
purchaseButton.frame = CGRectMake(313,431,142,142);
[UIView commitAnimations];
}
else{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:duration];
proUpgradeDescription.frame = CGRectMake(20,80,280,70);
proUpgradePrice.frame = CGRectMake(88,322,142,28);
closeButton.frame = CGRectMake(123,403,72,37);
purchaseButton.frame = CGRectMake(88,172,142,142);
[UIView commitAnimations];
}
}
который вызывает код, который я использую для анимации вращения дисплея для портретного и ландшафтного режима. Этот код не действует.
Если у кого-то есть идеи относительно того, почему тестовые рекламные объявления не вращаются правильно и почему они выталкивают родительский контроллер представления с экрана, я был бы очень признателен.