ADInterstitialAd 不适用于 ipad swift
ADInterstitialAd doesn't work on ipad swift
我实现了一个 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()
}
它打印 'ad did load' 但在 ipad 上它只显示关闭按钮而不显示 adview 并且它不打印错误描述。我导入了 iAd 框架并在我的 class.
中包含了 ADInterstitialAdDelegate
presentInView
方法将 return 一个布尔值,告诉您它是否显示正常。所以我会先检查一下。
如果 returns NO
那么请检查您展示广告的视图是否确实是您期望的尺寸。如果视图不够大,则不会展示广告。您可能在视图生命周期中过早地展示了广告,并且视图的大小尚未调整为适合屏幕?
一些其他注意事项:
您不需要 UIViewController.prepareInterstitialAds()
调用,因为该方法不适用于直接使用 ADInterstitialAd
的人。您只是准备了广告,但创建了 ADInterstitialAd
.
的实例
ADInterstitialAd
对象是一次性对象,因此请确保每次都获得一个新对象。
此外,UIViewController.prepareInterstitialAds()
是更简单的 api 的一部分,您不必自己管理 ADInterstitialAd
。如果您没有任何特殊要求,您可能更愿意使用 api.
我实现了一个 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()
}
它打印 'ad did load' 但在 ipad 上它只显示关闭按钮而不显示 adview 并且它不打印错误描述。我导入了 iAd 框架并在我的 class.
中包含了 ADInterstitialAdDelegatepresentInView
方法将 return 一个布尔值,告诉您它是否显示正常。所以我会先检查一下。
如果 returns NO
那么请检查您展示广告的视图是否确实是您期望的尺寸。如果视图不够大,则不会展示广告。您可能在视图生命周期中过早地展示了广告,并且视图的大小尚未调整为适合屏幕?
一些其他注意事项:
您不需要 UIViewController.prepareInterstitialAds()
调用,因为该方法不适用于直接使用 ADInterstitialAd
的人。您只是准备了广告,但创建了 ADInterstitialAd
.
ADInterstitialAd
对象是一次性对象,因此请确保每次都获得一个新对象。
此外,UIViewController.prepareInterstitialAds()
是更简单的 api 的一部分,您不必自己管理 ADInterstitialAd
。如果您没有任何特殊要求,您可能更愿意使用 api.