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 是单元格在其父视图中的中心点,而不是其自身坐标系中的中心点。