Баннер AdMob появляется под индикатором главной страницы при первой загрузке и время от времени.
Когда ViewControllers загружаются в мое приложение в первый раз, баннеры AdMob не отображаются в их выделенных супервизорах, а вместо этого появляются под индикатором домашней страницы, как показано на снимке экрана:
Я заметил, что это происходит не только при первой загрузке, но и время от времени.
Когда я прохожу вперед и назад по сценам (ViewControllers), иногда каждый баннер появляется в своем выделенном супервизоре, как и должно быть, иногда нет.
Верхние ограничения выделенных супервизоров Banners - от 0 до безопасной зоны. Поэтому они должны появиться прямо под панелью навигации. Виды расположены в следующем порядке сверху вниз:
- Панель навигации
- Безопасная зона начинается
- Простой UIView для баннера
- TableView
- Безопасная зона заканчивается
- Индикатор Home
Связанный код:
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
- Нижнее пространство до: Просмотр таблицы
- Выровнять верх по: безопасной зоне
2 ответа
Я понял, что эта проблема вызвана не ограничениями UIView, который содержит баннер, а ограничениями баннера, которые были установлены в коде (view.addConstraint()
). Я отключил такие ограничения и проблема была просто решена.
Это проблема ограничений представления, в котором вы добавили баннерную рекламу. Пожалуйста, проверьте это или не могли бы вы показать, какие ограничения вы ввели?