是否可以为整个应用添加AdBanner?例如,像使用它的所有子项的PageViewController一样。
但是可以在全球范围内添加一个AdBanner吗?
如果是,是否有办法另外跳过一个?
答案 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实例的基础。并且,在向其子视图添加约束时,请不要向bottomLayoutGuide
或view.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
}
}