在 UICollectionView 中使用 DFPBannerView

Using DFPBannerView in a UICollectionView

我有一个基于 UICollectionView 的应用程序,您可以在其中点击一些磁贴以转到详细信息屏幕。

主应用程序中的一个磁贴具有显示广告的 DFPBannerView 视图。此外,详细信息屏幕有一个较小的广告,它也是一个 DFPBannerView。

使用 Charles 进行分析,我看到的是,如果我在任何时候创建了来自主屏幕的广告图块(因此向下滚动到它并返回),然后我深入到详细信息屏幕,我将收到两次广告调用 - 一次用于主屏幕,一次用于细节,尽管我在代码中明确看到我只制作了一个。

我是否需要以某种方式明确禁用广告?如果是这样,如何?我在网上找到的所有内容都说 SDK 应该负责了解广告何时不在我的屏幕上,但它似乎确实没有这样做。我猜这是因为广告在一个单元格中并且该单元格仍然存在,但我认为这是一个相当标准的用例?

我发现了问题 - 我将错误的宽度传递给集合视图布局 class,这导致它认为它可以适合屏幕上的每个图块,因此尝试渲染它们,包括远未出现在屏幕上的广告。修复后,广告图块将不再被调用,直到它实际出现在屏幕上。

值得一提的是,宽度错误的原因是因为我们在动画期间引用了视图的 window 的宽度,而 window 为零,因此宽度为 0.