2015-04-12 25 views
1

我實現了一個ADInterstitialAd工作,它工作正常,在iPhone,但它不能在iPad上運行。這裏是我的代碼:ADInterstitialAd不會在iPad上迅速

func close(sender: UIButton) { 

    closeButton.removeFromSuperview() 
    interAdView.removeFromSuperview() 
} 

func loadAd() { 
    println("load ad") 
    interAd = ADInterstitialAd() 
    interAd.delegate = self 
} 

func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) { 
    println("ad did load") 

    interAdView = UIView() 

    interAdView.frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height) 
    self.view?.addSubview(interAdView) 

    interAd.presentInView(interAdView) 
    UIViewController.prepareInterstitialAds() 

    interAdView.addSubview(closeButton) 
} 

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) { 
    closeButton.removeFromSuperview() 
    interAdView.removeFromSuperview() 
} 

func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) { 
    println("failed to receive") 
    println(error.localizedDescription) 


    closeButton.removeFromSuperview() 
    interAdView.removeFromSuperview() 

} 

它打印「的廣告做負載」,但在iPad上只顯示了closebutton,而不是AD瀏覽,它不打印錯誤描述。我導入了iAd框架並在我的課程中包含了ADInterstitialAdDelegate。

回答

0

presentInView方法會返回一個布爾值來告訴你,如果它提出的確定。所以我會先檢查一下。

如果返回NO然後檢查你正在呈現的廣告到視圖實際上是你希望它是大小。如果視圖不夠大,廣告將不會呈現。您可能在視圖生命週期中過早展示廣告,並且視圖的大小尚未適合屏幕?

其他一些注意事項:

你不需要UIViewController.prepareInterstitialAds()調用,因爲該方法不適合直接使用ADInterstitialAd人。您只准備廣告,但創建ADInterstitialAd的實例。

ADInterstitialAd對象是一次性使用的對象,以便確保你得到一個新鮮每次。

而且UIViewController.prepareInterstitialAds()是一個簡單的API,你不必自己管理ADInterstitialAd的一部分。如果您沒有任何特殊要求,您可能更願意使用該API。

+0

謝謝!我怎樣才能得到正確的尺寸?現在我使用整個屏幕作爲adview。或者是iPad的ADInterstitialAd視圖太大?我無法讓它變大。 – Tower

+0

好的,你是否檢查目前的回報?它返回否?你有沒有檢查你展示的視圖的大小?它的尺寸是多少?它需要與屏幕的大小有關,它們允許你爲工具欄留出一點空間。如何讓視圖大小合適是另一個話題,無論是時機,還是需要查看視圖控制器的生命週期,和/或自動佈局等 –

+0

它返回NO和視圖具有與顯示相同的大小。 – Tower