2016-05-22 17 views
1

Мои приложения имеют Root View Controller, который содержит контейнерный вид и рекламный баннер. Нижняя часть контейнера прикреплена к верхней части рекламного баннера с помощью автоматического макета.Удалить рекламу Баннер и не может сделать приложение становится полноэкранным

Мое требование - когда рекламный баннер удален, вид контейнера должен быть изменен до полного экрана.

Я не могу этого сделать. Я удалил рекламный баннер, либо установив его на нуль, либо удалив его из супервизора. Но Container View по-прежнему остается того же размера и той же позиции, оставляя пустое место внизу, где размещается рекламный баннер.

Я также попытался установить новое ограничение на контейнерном View с этим кодом

containerViewBottomConstraint = NSLayoutConstraint(item: containerView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view.superview, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0) 

Но тогда приложение падает с этой ошибкой.

Согласующего приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «* + [NSLayoutConstraint constraintWithItem: атрибут: relatedBy: toItem: атрибут: Умножитель: константа]: Умножитель 0 или ноль второго элемента вместе с местоположение для первого атрибута создает незаконное ограничение местоположения, равное константе. Атрибуты местоположения должны указываться парами.

RootView

+0

FYI, Apple сказал: ** [«Сеть приложений iAd будет прекращена с 30 июня 2016 года».] (Https://developer.apple.com/news/?id=01152016a) **. – Pang

ответ

2

Допустим, что высота объявления Баннер 50, так просто получить нижнюю побуждению зрения контейнера, как выход к вашему классу.

Затем отрегулируйте ограничение, делая как:

containerViewBottomConstraint.constant = -50 

Вам может понадобиться вызвать self.view.layoutIfNeeded(), чтобы обновить представление с новым ограничением.

Удачи вам!

+0

Спасибо. Просто измените ограничение на привязку к руководству макета Bottom вместо рекламного баннера. и установите его в 0 в viewWilAppear Теперь контейнер полный экран. Но это приносит новую проблему. Я удаляю приложение из устройства, чтобы очистить историю покупок в приложении и переустановить его из Xcode. Теперь приложение падает в AppDelegate с ошибкой ниже. «NSInternalInconsistencyException», причина: «ADBannerView должен быть частью иерархии представлений, управляемой UIViewController» , пожалуйста, сообщите. –

+0

@AeyKungTaemin, пожалуйста, дайте мне больше информации! – AaoIi

+0

Я знаю, что вызывает ошибку. Я положил self.canDisplayBannerAds = true в видеWillAppear. Раньше я помещал его в viewDidLoad. Но я должен положить его. потому что я уже добавляю баннер объявлений через IB. –