Баннер AdMob появляется под домашним индикатором при первой загрузке и время от времени - PullRequest
0 голосов
/ 06 ноября 2019

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

Banner appears under

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

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

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

  1. Панель навигации
  2. Безопасная зона начинается
  3. Простой UIView для размещения баннера
  4. TableView
  5. Безопасная зона заканчивается
  6. Домашний индикатор

Код, связанный с:

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 ]

0 голосов
/ 06 ноября 2019

Я понял, что эта проблема вызвана не ограничениями UIView, которые содержат баннер, а ограничениями баннера, которые были установлены в коде (view.addConstraint()). Я отключил такие ограничения, и проблема была просто решена.

0 голосов
/ 06 ноября 2019

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

...