У меня проблема между iAd BannerView, созданным в IB, и его ограничениями. У меня есть IBOutlet для нижнего ограничения iAd BannerView с супервизором. В viewDidLoad () ViewController я установил для выхода значение 0 минус высота баннера, чтобы iAd BannerView располагался за пределами нижнего поля экрана.
@IBOutlet var adBannerView: ADBannerView!
@IBOutlet var adBannerBottomConstraints: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Configure answers index
self.arrayAnswIndex = ["A", "B", "C", "D", "E"]
// TableView Cell
var nib = UINib(nibName: "QuestionTableViewCell", bundle: nil)
self.simulazioneTableView.registerNib(nib, forCellReuseIdentifier: self.QuestionCellIdentifier)
var nibAnswer = UINib(nibName: "AnswerTableViewCell", bundle: nil)
self.simulazioneTableView.registerNib(nibAnswer, forCellReuseIdentifier: self.AnswerCellIdentifier)
// NavigationBar
self.navigationBarSettings()
// TabBar
self.tabBarController?.tabBar.hidden = true
// iAd Banner
adBannerView.hidden = true
adBannerBottomConstraints.constant = 0 - self.adBannerView.bounds.size.height
}
Когда объявление загружено, я анимирую ограничение для показа баннера:
func bannerViewDidLoadAd(banner: ADBannerView!) {
if (adBannerView.hidden == true) {
//now show banner
adBannerView.hidden = false
self.adBannerBottomConstraints.constant = self.adBannerBottomConstraints.constant + self.adBannerView.frame.size.height
UIView.animateWithDuration(0.4, animations: {
self.view.layoutIfNeeded()
})
}
}
Проблема в том, что в iOS 8 все работает нормально, в iOS 7 вместо этого iAd BannerView в два раза больше размера под нижним полем после viewDidLoad (), поэтому при загрузке рекламы баннер остается за пределами экрана. Я временно решил проблему с проверкой версии устройства и соответствующим изменением ограничения в viewDidLoad ().
// iAd Banner
adBannerView.hidden = true
if ((UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8.0) {
adBannerBottomConstraints.constant = 0 - self.adBannerView.bounds.size.height
} else {
adBannerBottomConstraints.constant = 0
}
Есть ли лучший способ достичь моей цели? Спасибо вам, ребята!
Андреа
Изображений: