iOS7 Auto Layout, просмотр изменения размера и iAds
Я использую Auto Layout в своем проекте iOS 7 со следующей иерархией представления
Главный вид
-Контейнер Посмотреть
--- Кнопка
--- Кнопка
--- ImageView
-Banner View (iAd Banner View)
Основной вид и вид контейнера - это полная ширина и высота экрана. У меня есть горизонтальные и вертикальные ограничения пространства в представлении контейнера, придерживающиеся основного вида (высота и ширина экрана). А также подпредставления Контейнерного Представления ограничены кнопкой представления с пространством 20px.
Моя проблема возникает, когда представление баннера, наконец, заполнено и помещено в нижней части экрана, а затем у меня в представлении контейнера вычитается высота представления баннера из его высоты кадра, чтобы освободить место для отображения баннера. (код используется ниже). Идеальным результатом является представление контейнера для вычитания высоты и обновления ограничения его подпредставлений на основе этой новой высоты, но в итоге происходит представление баннера iAD, просто перекрывающее представление, как показано на рисунке.
Код для BannerViewDidLoadAd:
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
CGRect contentFrame = self.containerView.bounds;
CGRect bannerFrame = self.bannerView.bounds;
if (self.bannerView.bannerLoaded) {
contentFrame.size.height = self.containerView.frame.size.height - self.bannerView.frame.size.height;
bannerFrame.origin.y = contentFrame.size.height;;
} else {
bannerFrame.origin.y = contentFrame.size.height;
}
[UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{
[self.containerView setFrame:contentFrame];
[self.containerView layoutIfNeeded];
self.bannerView.frame = bannerFrame;
self.bannerView.hidden = NO;
}];
[self.containerView updateConstraints];
}
Изображение наложенного на iAd представления контейнера и его подвидов