我实现了ADInterstitialAd,它在iPhone上可以正常运行,但在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上仅显示关闭按钮,而不显示adview,并且不会显示错误说明。我导入了iAd框架,并将ADInterstitialAdDelegate包含在我的课程中。
该presentInView
方法将返回一个布尔值,以告诉您是否显示正确。因此,我将首先进行检查。
如果返回,NO
则检查要向其展示广告的视图是否确实是您期望的尺寸。如果视图不够大,则该广告将不会展示。您可能在视图生命周期中展示广告的时间过早,并且视图的大小尚未适合屏幕尺寸?
其他注意事项:
您不需要UIViewController.prepareInterstitialAds()
呼叫,因为该方法不适用于ADInterstitialAd
直接使用此方法的人。您只准备广告,但创建的实例ADInterstitialAd
。
该ADInterstitialAd
对象是一次性使用的对象,因此请确保每次都获得一个新的对象。
也是UIViewController.prepareInterstitialAds()
您无需管理ADInterstitialAd
自己的更简单api的一部分。如果您没有任何特殊要求,则可以使用该API。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句