iAd 的位置有时 运行 次不同

iAd's position is sometimes different at run time

我在情节提要中创建了一个 iAd 横幅,并添加了以下四个约束:(高度:50,宽度:320,容器中的水平居中,以及从视图顶部开始的 10)。有时,当我 运行 应用程序时,iAd 横幅就位于我放置它的位置,其他时候它只是随机出现在屏幕底部。我的应用程序仅限于景观,只有当它与它有关时。我做错了什么?

import UIKit
import AVFoundation
import iAd

class ViewController: UIViewController, ADBannerViewDelegate {

    @IBOutlet weak var adBanner: ADBannerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Set ad banner settings
        self.canDisplayBannerAds = true
        self.adBanner?.delegate = self
        self.adBanner?.hidden = true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func bannerViewWillLoadAd(banner: ADBannerView!) {
        self.adBanner?.hidden = true
    }

    func bannerViewDidLoadAd(banner: ADBannerView!) {
        self.adBanner?.hidden = false
    }

    func bannerViewActionDidFinish(banner: ADBannerView!) {

    }

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
        return true
    }

    func bannerView(banner: ADBannerView!, didFailToRecieveAdWithError error: NSError!) {
        self.adBanner?.hidden = true  
    }
}

self.canDisplayBannerAds = true 正在创建出现在屏幕底部的横幅。 self.canDisplayBannerAds = true 可用于 轻松 在您的应用程序中实施 iAd 横幅的方式。这将为您创建一个 ADBannerView,并根据它是否从 iAd 网络接收到广告来显示或隐藏 ADBannerView。您需要从 viewDidLoad() 中删除 self.canDisplayBannerAds = true。当您在情节提要中创建 ADBannerView 时,这不是必需的。