当ViewControllers首次加载到我的应用中时,Admob标语不会出现在其专用的超级视图中,而是标语显示在主页指示器下方,如屏幕截图所示:
我注意到,这不仅会在第一次加载时发生,还会不时出现。
当我在场景(ViewController)周围来回移动时,有时每个横幅都会以应有的方式出现在其专用的超级视图中,有时却没有。
Baners专用超级视图的最高限制是0到安全区。因此,它们应显示在导航栏的正下方。这些视图是按照从上到下的顺序设计的:
- 导航栏
- 安全区开始
- 包含横幅的简单UIView
- TableView
- 安全区结束
- 家庭指标
相关代码:
override func viewWillAppear(_ animated: Bool) {
setBanner()
}
func setBanner() {
banner.delegate = self
banner.rootViewController = self
banner.load(GADRequest())
GAdmobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers =
[ "kGADSimulatorID" ]
bannerContainerView.addSubview(banner)
}
我将setBanner()
而不是func viewDidLoad()
放在了viewWillAppear()
中,但没有任何改变。
我在iOS模拟器和物理设备上测试并注意到了此行为。
当我在iPhone 8上进行测试时,不会出现此问题,因为它在安全区域下没有可见的空间。
我猜横幅广告在以某种方式可用之前会加载,但是我不确定。
更新:包含横幅的视图的约束:
- 将行尾对齐至:安全区域
- 对齐导致:安全区域
- 高度等于:50
- 底部空间:表格视图
- 顶部对齐:安全区域