Я пытаюсь создать универсальный шаблон приложения iOS, который прозрачно обрабатывает iAds и повороты экрана.
то есть вместо использования UIViewController для каждого нового проекта я буду использовать свой собственный iAdVC (который будет подклассом UIViewController). Это без проблем обработает iAds и передаст оставшееся пространство окна пользователю.
Я пытаюсь сделать это: контроллер представления содержит uberView, который содержит {adView, представление содержимого}.
всякий раз, когда объявление появляется и исчезает, оба {adView, content view} будут анимироваться:
представление содержимого немного сжимает верхнюю часть фрейма, чтобы освободить место для моего iAd,
и одновременно исчезает реклама вверху.
Кроме того, каждый раз, когда устройство вращается, размеры изображений должны изменяться.
У меня возникает действительно глупая проблема: когда первое объявление показывается, я помещаю его в верхнюю часть экрана и сжимаю оставшийся фрейм контента, чтобы освободить место для него.
но если я изменю рамку просмотра контента, я больше не смогу нажать на объявление. и если я этого не сделаю, представление контента не помещается в его окне,
- (void) bannerViewDidLoadAd: (ADBannerView *) banner
{
bool isLandscape = UIInterfaceOrientationIsLandscape( self.interfaceOrientation );
NSString * contentSize = isLandscape ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifierPortrait ;
[self.adBannerView setCurrentContentSizeIdentifier: contentSize];
CGSize bannerSize = [ADBannerView sizeFromBannerContentSizeIdentifier: contentSize];
self.adBannerView.frame = CGRectMake(0, 0, bannerSize.width, bannerSize.height);
// resize content frame & fade ad in
CGRect newContentFrame = uberView.bounds;
newContentFrame.size.height -= bannerSize.height;
newContentFrame.origin.y += bannerSize.height;
NSLog(@"%@", NSStringFromCGRect(newContentFrame)); // {{0, 50}, {320, 430}}
if (1) // 0 works
self.contentView.frame = newContentFrame; // NOW CANT CLICK AD
}