解決了!
要使用縱向和橫向上的自動佈局和尺寸類別添加iAd橫幅,但不使用canDisplayBannerAds
首先聲明橫幅var bannerView: ADBannerView!
。
使用此設置委託,並添加橫幅,即可查看:
func loadAds() {
bannerView = ADBannerView(adType: ADAdType.Banner)
bannerView.hidden = true
bannerView.delegate = self
self.view.addSubview(bannerView)
}
使用下面的代碼,讓旗幟屏幕旋轉和調整屏幕內容contentView
時iAd的負載(bottomConstraint
是contentView
到下一個約束):
override func viewDidLayoutSubviews() {
self.layoutAnimated(UIView.areAnimationsEnabled())
}
func layoutAnimated(animated: Bool) {
var contentFrame = self.view.bounds
var sizeForBanner = bannerView.sizeThatFits(contentFrame.size)
var bannerFrame = bannerView.frame
if self.bannerView.bannerLoaded {
contentFrame.size.height -= sizeForBanner.height
bannerFrame.origin.y = contentFrame.size.height
bannerFrame.size.height = sizeForBanner.height
bannerFrame.size.width = sizeForBanner.width
let verticalBottomConstraint = self.bottomConstraint
verticalBottomConstraint.constant = sizeForBanner.height
self.view.layoutSubviews()
bannerView.hidden = false
} else {
bannerFrame.origin.y = contentFrame.size.height
bannerView.hidden = true
let verticalBottomConstraint = self.bottomConstraint
verticalBottomConstraint.constant = 0
}
UIView.animateWithDuration(animated ? 0.25 : 0.0, animations: {
self.contentView.layoutIfNeeded()
self.bannerView.frame = bannerFrame
})
}
在這裏,您撥打上面的代碼顯示和隱藏橫幅廣告時加載或加載失敗的iAd
func bannerViewDidLoadAd(banner: ADBannerView!) {
self.layoutAnimated(true)
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
self.layoutAnimated(true)
}
現在您可以使用bannerViewActionShouldBegin
和bannerViewActionDidFinish
來暫停並開始您的應用活動。 :)