Ios Swift:iAd UITableViewController位置

Ios Swift:iAd UITableViewController位置,ios,uitableview,swift,iad,Ios,Uitableview,Swift,Iad,我通过拖动到UITableViewController 在我的UITableViewController中,我有以下代码 @IBOutlet var adBannerView: ADBannerView! 在ViewDidLoad self.canDisplayBannerAds = true self.adBannerView.delegate = self self.adBannerView.hidden = true 这些代表的方法 func bannerViewActionShoul

我通过拖动到
UITableViewController

在我的
UITableViewController
中,我有以下代码

@IBOutlet var adBannerView: ADBannerView!
ViewDidLoad

self.canDisplayBannerAds = true
self.adBannerView.delegate = self
self.adBannerView.hidden = true
这些代表的方法

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

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

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    println("didFailToReceiveAdWithError")
    self.adBannerView.hidden = true
}
有时,当UITableViewLoads加载时,它会如下所示

iAd将位于TableView的底部,并随之移动

然而,有时它只是在视图的底部加载一个固定的位置,这正是我想要的


如何使iAd固定在底部,而不随tableview移动?

您的问题是,您实际上在这里创建了两个
ADBannerView
。在Interface Builder和
viewDidLoad中使用
self.candisplaybanerads=true加载一次。从您的
视图中删除
self.candisplaybanerads=true
,以更正此问题

要将在Interface Builder中创建的
ADBannerView
固定到应用程序视图的底部,需要设置其约束。使用
底部空间至:底部布局指南
将您的
ADBannerView
固定到视图底部,并将其与Interface Builder中的
align Center X to:Superview
对齐


这将使ADBannerView保持在应用程序视图的底部,并在具有不同屏幕尺寸的设备上适当调整其大小。

我无法在情节提要中添加任何约束。我从情节提要中删除了iAd横幅,只需使用:

self.canDisplayBannerAds = true

现在它工作正常了

我也遇到了类似的问题,所以我只是手工编写了代码。当我的代码在ViewDidLoad中时,一切都不起作用,但取而代之的是ViewWill将显示我所需要的一切

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.canDisplayBannerAds = true
    self.banner.delegate = self
}
当然,在类的顶部添加ADBannerViewDelegate,然后添加其方法:

let banner = ADBannerView(adType: .Banner)

func bannerViewDidLoadAd(banner: ADBannerView!) {
    self.view.addSubview(banner)
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    banner.removeFromSuperview()
}

似乎约束仅在UIViewController中有效,但在UITableViewController中无效。iAd始终处于同一位置