Tableviewcell 在尝试显示 google 广告时不显示任何内容
Tableviewcell shows nothing when trying to showing google ads
我正在尝试在表格视图单元格上显示 google 广告 (DFPBanner)。但它什么也没显示。
我已经在检查器上设置了我的单元标识符,与代码相同。
我输入 func adViewDidReceiveAd(_ bannerView: GADBannerView)
并收到成功收到广告的响应
这是我在 cellForRowAt
上的代码
let cell = tableView.dequeueReusableCell(withIdentifier: "middleAdsCell", for: indexPath) as! AdsCell
adMiddle1View = AdsCell.cellMiddleView(rootVC: self, frame:cell.bounds) as! DFPBannerView
for view in cell.contentView.subviews {
if view.isKind(of: DFPBannerView.self) {
view.removeFromSuperview()
}
}
adMiddle1View.delegate = self
adMiddle1View.center = cell.center
cell.addSubview(adMiddle1View)
DispatchQueue.main.async {
self.adMiddle1View.load(DFPRequest())
}
return cell
这是我的 AdsCell
class func cellMiddleView(rootVC: UIViewController, frame: CGRect) -> GADBannerView {
let middleView = DFPBannerView()
middleView.frame = frame
middleView.rootViewController = rootVC
middleView.adUnitID = "/**80****/*****.COM_******_Apps_IOS/Zone_2"
middleView.adSize = kGADAdSizeMediumRectangle
//middleView.videoController.pause()
return middleView
}
结果是表格视图只显示空单元格。
请帮我解决这个问题。谢谢!
首先,将 cellMiddleView
方法的 return 类型更改为 DFPBannerView
而不是 GADBannerView
。
然后确保 DFPBannerView
的大小与此处列出的相同:Banner Sizes
不过,如果您想使用自定义尺寸,请使用 GADAdSizeFromCGSize
添加横幅视图的框架尺寸。
let adSize = GADAdSizeFromCGSize(CGSize(width: 300, height: 50))
middleView.frame.size = adSize
如果加载仍然有问题 DFPBannerView
,请遵循委托方法,检查具体问题并修复它。
/// Tells the delegate an ad request loaded an ad.
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("adViewDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func adView(_ bannerView: GADBannerView,
didFailToReceiveAdWithError error: GADRequestError) {
print("adView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}
/// Tells the delegate that a full-screen view will be presented in response
/// to the user clicking on an ad.
func adViewWillPresentScreen(_ bannerView: GADBannerView) {
print("adViewWillPresentScreen")
}
/// Tells the delegate that the full-screen view will be dismissed.
func adViewWillDismissScreen(_ bannerView: GADBannerView) {
print("adViewWillDismissScreen")
}
/// Tells the delegate that the full-screen view has been dismissed.
func adViewDidDismissScreen(_ bannerView: GADBannerView) {
print("adViewDidDismissScreen")
}
/// Tells the delegate that a user click will open another app (such as
/// the App Store), backgrounding the current app.
func adViewWillLeaveApplication(_ bannerView: GADBannerView) {
print("adViewWillLeaveApplication")
}
线路有问题
adMiddle1View.center = cell.center
因为 属性 cell.center
是单元格在其父视图中的中心点,而不是其自身坐标系中的中心点。
我正在尝试在表格视图单元格上显示 google 广告 (DFPBanner)。但它什么也没显示。
我已经在检查器上设置了我的单元标识符,与代码相同。
我输入 func adViewDidReceiveAd(_ bannerView: GADBannerView)
并收到成功收到广告的响应
这是我在 cellForRowAt
let cell = tableView.dequeueReusableCell(withIdentifier: "middleAdsCell", for: indexPath) as! AdsCell
adMiddle1View = AdsCell.cellMiddleView(rootVC: self, frame:cell.bounds) as! DFPBannerView
for view in cell.contentView.subviews {
if view.isKind(of: DFPBannerView.self) {
view.removeFromSuperview()
}
}
adMiddle1View.delegate = self
adMiddle1View.center = cell.center
cell.addSubview(adMiddle1View)
DispatchQueue.main.async {
self.adMiddle1View.load(DFPRequest())
}
return cell
这是我的 AdsCell
class func cellMiddleView(rootVC: UIViewController, frame: CGRect) -> GADBannerView {
let middleView = DFPBannerView()
middleView.frame = frame
middleView.rootViewController = rootVC
middleView.adUnitID = "/**80****/*****.COM_******_Apps_IOS/Zone_2"
middleView.adSize = kGADAdSizeMediumRectangle
//middleView.videoController.pause()
return middleView
}
结果是表格视图只显示空单元格。 请帮我解决这个问题。谢谢!
首先,将 cellMiddleView
方法的 return 类型更改为 DFPBannerView
而不是 GADBannerView
。
然后确保 DFPBannerView
的大小与此处列出的相同:Banner Sizes
不过,如果您想使用自定义尺寸,请使用 GADAdSizeFromCGSize
添加横幅视图的框架尺寸。
let adSize = GADAdSizeFromCGSize(CGSize(width: 300, height: 50))
middleView.frame.size = adSize
如果加载仍然有问题 DFPBannerView
,请遵循委托方法,检查具体问题并修复它。
/// Tells the delegate an ad request loaded an ad.
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("adViewDidReceiveAd")
}
/// Tells the delegate an ad request failed.
func adView(_ bannerView: GADBannerView,
didFailToReceiveAdWithError error: GADRequestError) {
print("adView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}
/// Tells the delegate that a full-screen view will be presented in response
/// to the user clicking on an ad.
func adViewWillPresentScreen(_ bannerView: GADBannerView) {
print("adViewWillPresentScreen")
}
/// Tells the delegate that the full-screen view will be dismissed.
func adViewWillDismissScreen(_ bannerView: GADBannerView) {
print("adViewWillDismissScreen")
}
/// Tells the delegate that the full-screen view has been dismissed.
func adViewDidDismissScreen(_ bannerView: GADBannerView) {
print("adViewDidDismissScreen")
}
/// Tells the delegate that a user click will open another app (such as
/// the App Store), backgrounding the current app.
func adViewWillLeaveApplication(_ bannerView: GADBannerView) {
print("adViewWillLeaveApplication")
}
线路有问题
adMiddle1View.center = cell.center
因为 属性 cell.center
是单元格在其父视图中的中心点,而不是其自身坐标系中的中心点。