将AdBanner全局添加到所有屏幕

时间:2019-05-27 13:56:40

标签: ios swift admob

是否可以为整个应用添加AdBanner?例如,像使用它的所有子项的PageViewController一样。

但是可以在全球范围内添加一个AdBanner吗?

如果是,是否有办法另外跳过一个?

2 个答案:

答案 0 :(得分:-1)

您可以将其添加为应用程序窗口的子视图

let wind = (UIApplication.shared.delegate as! AppDelegate).window!
adBanner.tag = 22
wind.addSubview(adBanner)

然后,您可以在需要隐藏和执行的广告中访问广告

let ad = wind.viewWithTag(22) as! AdBanner
ad.isHidden = true/false

答案 1 :(得分:-1)

创建一个UIViewController子类,并将横幅添加到视图控制器的底部。

class BaseViewController: UIViewController {
    let bannerView = GADBannerView()
    override func viewDidLoad() {
        super.viewDidLoad()
        bannerView.backgroundColor = .blue
        bannerView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(bannerView)
        bannerView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        bannerView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
        bannerView.heightAnchor.constraint(equalToConstant: 50).isActive = true
    }
}

然后使用此类作为所有其他UIViewController实例的基础。并且,在向其子视图添加约束时,请不要向bottomLayoutGuideview.safeAreaLayoutGuide.bottomAnchor添加底部约束。将底部约束添加到bannerView.topAnchor

class ViewController: BaseViewController {

    @IBOutlet weak var tableView: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(tableView)
        tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
        tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        tableView.bottomAnchor.constraint(equalTo: bannerView.topAnchor).isActive = true
    }
}

enter image description here