- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将我的bannerView 添加到collectionView header 中。它不会让我将 bannerView.rootViewController
设置为 headerView 的 self,因为它不是 UIViewController。
我总是可以在具有collectionView的viewController中实现所需的属性,但是如何加载bannerView?
class HeaderView: UICollectionReusableView {
var bannerView: GADBannerView = {
let view = GADBannerView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
bannerView.rootViewController = self
bannerView.load(GADRequest())
}
}
包含collectionView的类:
class MainViewController: UIViewController {
var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
// ... instantiate the collectionView
}
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerView", for: indexPath) as! HeaderView
return headerView
}
}
最佳答案
在headerView
内我添加了一个PassthroughView在cellForItem
内部,我将bannerView作为 subview 添加到PassthroughView中。效果很好
import GoogleMobileAds
class HeaderView: UICollectionReusableView {
var passthroughView: PassthroughView = {
let view = PassthroughView()
view.translatesAutoresizingMaskIntoConstraints = false
view.isUserInteractionEnabled = true
}()
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .white
// anchors for passthroughView ...
}
func addBannerViewToPassthroughView(_ bannerView: GADBannerView) {
if !bannerView.isDescendant(of: passthroughView) {
passthroughView.addSubview(bannerView)
}
}
}
包含 collectionView 并提供广告的类位于主 vc 中,而不是单元格中,因此我不必担心单元格回收本身并在滚动时不断提供广告:
class MainViewController: UIViewController {
var collectionView: UICollectionView!
var bannerView: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// ... instantiate the collectionView
bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
bannerView.rootViewController = self
bannerView.delegate = self
bannerView.load(GADRequest())
}
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerView", for: indexPath) as! HeaderView
// for some strange reason adding the bannerView as a subView to the passthroughView inconsistently froze my app (sometimes it did and sometimes it didn't). Once I added it on the mainQueue everything worked fine
DispatchQueue.main.async { [weak self] in
if let bannerView = self?.bannerView {
headerView.addBannerViewToPassthroughView(bannerView)
}
}
return headerView
}
}
关注this answer了解有关bannerView 如何知道何时出现在屏幕上以及何时不在屏幕上的更多信息。
关于iOS - 如何将 GADBannerView 添加到 UICollectionReusableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404504/
我正在关注 Google AdMob Ads iOS让广告正常工作的教程。 在我尝试将广告添加到 UITableView 之前,一切正常。 我的设计是在表格上有两个部分,其中广告将出现在第一部分,表格
有人知道如何以编程方式显示 50pt 高度的 GADBannerView 吗? 在我看来DidLoad, int heightOfBanner = 50; GADBannerView *banner
我创建了一个名为 AdMobViewController 的类,并使用该类添加横幅。横幅创建但 View 中的其他对象不向上滚动。我如何以编程方式向上 ScrollView 中的所有对象。 我的 Ad
这是我的问题。 另外请不要说我知道 AdWhirl 但选择不使用它,因为我更喜欢控制我的广告发生的事情。 基本上我有 iAds 和 AdMob。我总是从 iAd 开始,如果广告没有可显示的内容,我会初
我已使用 AdMob 将广告添加到我的 iOS 应用程序中。如果没有显示广告,我希望将其替换为图像,如下所示: //Request Advertisement let requ
我正在使用 GADBannerView 来展示横幅广告。这是我加载广告的方式: override func viewDidAppear(_ animated: Bool) { supe
我想问一下如何在加载广告时设置背景图片直到显示广告。 AdMob = [[GADBannerView alloc]init]; AdMob.frame = CGRectMake(0, 0 , GAD_
我收到这个错误: 2016-05-11 17:07:43.496 Inspire[2265:1045224] You must set the rootViewController
我想构建像其他 View 一样扩展 GADBannerView 的自定义类,但它不起作用 class ListAd:GADBannerView { var controller: UIView
我集成了 admob。我的应用程序支持纵向和横向模式。在纵向模式下,它工作得很好,但横向模式没有改变广告大小。在横向模式下,横幅 View 广告包含左右空间。 如何改变广告尺寸? 请帮助我。 最佳答案
我的 GADBannerView 目前在顶部,如何将其位置更改为底部? var Banner = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait
我只是想在我的新应用中添加广告。 在我的其他应用中,我通过手动将框架复制到项目中来添加广告。但是这一次,我决定使用 Firebase/AdMob cocoapod。所以我添加了这些行: pod 'Fi
我想在 UITableViewController 内的屏幕底部添加一个固定的 GADBannerView(Google 移动广告):我找到了有关如何将其合并到节页眉、页脚、单元格等中的教程。但我想要
我正在为广告使用 2 中介。 购买 IAP 时,我想删除广告横幅。 现在我用removeFromSuperview删除 View 。但是,广告仍在刷新。如何停止获得更多广告? 最佳答案 您还应该释放
我正在使用 AdMob 并将 GADBannerView 加载到 UITableViewController 而不是一般的 UIView 中。谁能告诉我如何加载横幅并显示在表格 View 的顶部?下面
我想修复 UITableView 底部的 GADBannerView,横幅在滚动后显示在表格的末尾。 最佳答案 请看这个链接。您不可能必须在 View Controller 中使用比您可以添加 Vie
我将我的bannerView 添加到collectionView header 中。它不会让我将 bannerView.rootViewController 设置为 headerView 的 self
我正在尝试在 SCNPlane 中显示 GADBannerView。代码看起来或多或少像这样: let banner = GADBannerView(adSize: kGADAdSizeSmartBa
在我的项目中包含 GoogleMobileAdvertising.framework 并确保它被搜索路径找到后,以下代码行仍然导致无法识别的选择器错误。 GADBannerView* gadBanne
Google ad mob 文档告诉我使用 GADBannerView 来展示广告,而 google ad manager 告诉我使用 DFPBannerView。据我所知,两者的表现完全相同,所以为
我是一名优秀的程序员,十分优秀!