2015-05-01 16 views
3

我已經通過拖動到UITableViewController斯威夫特:iAd系統的UITableViewController位置

在我UITableViewController創造了故事板的iAd的橫幅,我有這些代碼

@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,它看起來像這樣

http://i.stack.imgur.com/P4p1J.png

IAD設備將在TableView中的底部,並將其與它的動作

但有時它會只是加載在視圖的底部有一個固定的位置,這是我想要的。

我該如何讓iAd固定在底部並且不隨tableview移動?

回答

3

你的問題是,你實際上是在這裏創建兩個ADBannerView的。一旦進入界面生成器,另一個在viewDidLoadself.canDisplayBannerAds = true。從您的viewDidLoad中刪除self.canDisplayBannerAds = true以解決此問題。

要將您在Interface Builder中創建的ADBannerView固定到應用程序視圖的底部,您需要設置其約束。用Bottom Space to: Bottom Layout GuideADBannerView固定到視圖的底部,並將其與Interface Builder中的Align Center X to: Superview對齊。

這將保持ADBannerView位於應用程序視圖的底部,並在具有不同屏幕尺寸的設備上適當調整其大小。

+0

好像限制只適用於UIViewController但不是UITableViewController。 iAd始終處於相同的位置 – Exceptions

0

我無法在故事板中添加任何約束。我刪除從故事板的iAd的橫幅,只是使用:

self.canDisplayBannerAds = true 

現在它工作正常

-1

我,所以我只是我的編碼手動類似的問題。沒有工作時,我的代碼是在viewDidLoad中,而是viewWillAppear中所有我需要的是

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() 
}