在 UICollectionView 中滚动时 Admob Native Expess Ads 块
Posted
技术标签:
【中文标题】在 UICollectionView 中滚动时 Admob Native Expess Ads 块【英文标题】:Admob Native Expess Ads blocks while scrolling in UICollectionView 【发布时间】:2016-06-15 22:24:36 【问题描述】:我目前在 UICollectionViewCell 中配置了 Admob Native Express Ad (GADNativeExpressAdView)。
我使用故事板通过添加一个空视图并将 GADNativeExpressAdView 类分配给它来设置它。 一切正常加载,例如,每 10 个单元格显示一个广告。问题:用户第一次打开应用并开始向下滚动单元格列表时,当他们到达广告单元格时,滚动会阻塞,直到“构建”原生广告。完成后,滚动继续。然后,广告可能需要一点时间(1-2 秒)来加载广告请求。
加载请求似乎不是罪魁祸首。 我还以编程方式设置了广告,它似乎主要是在我第一次将广告视图添加为单元格的子视图时挂起。假设广告应该第二次出现在单元格 #20、#30 等中(之后每隔一个),滚动不会中断。它只发生在第一个。
任何关于如何解决此问题的想法将不胜感激。这是 GADNativeExpressAdView 本身的问题吗?
谢谢。
AdCollectionViewCell.Swift
class AdCollectionViewCell: UICollectionViewCell
@IBOutlet var intercellBanner: GADNativeExpressAdView!
override func awakeFromNib()
super.awakeFromNib()
let request = GADRequest()
request.testDevices = [kGADSimulatorID]
self.intercellBanner.loadRequest(request)
override func prepareForReuse()
super.prepareForReuse()
let request = GADRequest()
request.testDevices = [kGADSimulatorID]
self.intercellBanner.loadRequest(request)
【问题讨论】:
您已经为 GADNativeExpressAdView 创建了 IBOutlet。那么 Storyboard 文件中的内容是什么?是简单的 UIView 还是 UICollectionView.. 请回复。 嘿,我已经不再参与这个项目了。它是一个自定义单元格,带有一个给定类 GADNativeExpressAdView 的 UIView。更新我的 Xcode/Simulator 后,该块消失了。在设备上测试时没有发生这种情况。 【参考方案1】:我用 GCD 异步块包裹了正在加载请求的行,看起来这种方法解决了滚动问题。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
view.nativeExpressAdView.loadRequest(request)
)
【讨论】:
【参考方案2】:GitHub 存储库中有一个未解决的问题,还没有答案:S
https://github.com/googleads/googleads-mobile-ios-examples/issues/24
【讨论】:
以上是关于在 UICollectionView 中滚动时 Admob Native Expess Ads 块的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView 在滚动时重新加载错误的图像