Баннер AdMob появляется под индикатором главной страницы при первой загрузке и время от времени.

Когда ViewControllers загружаются в мое приложение в первый раз, баннеры AdMob не отображаются в их выделенных супервизорах, а вместо этого появляются под индикатором домашней страницы, как показано на снимке экрана:

Я заметил, что это происходит не только при первой загрузке, но и время от времени.

Когда я прохожу вперед и назад по сценам (ViewControllers), иногда каждый баннер появляется в своем выделенном супервизоре, как и должно быть, иногда нет.

Верхние ограничения выделенных супервизоров Banners - от 0 до безопасной зоны. Поэтому они должны появиться прямо под панелью навигации. Виды расположены в следующем порядке сверху вниз:

  1. Панель навигации
  2. Безопасная зона начинается
  3. Простой UIView для баннера
  4. TableView
  5. Безопасная зона заканчивается
  6. Индикатор 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()). Я отключил такие ограничения и проблема была просто решена.

Это проблема ограничений представления, в котором вы добавили баннерную рекламу. Пожалуйста, проверьте это или не могли бы вы показать, какие ограничения вы ввели?

Другие вопросы по тегам