Я пытаюсь отобразить промежуточную рекламу в своем приложении, когда пользователь нажимает кнопку печати, но после отклонения рекламы высота моего навигационного бара увеличилась с 44 до 96 (на физическом тестовом устройстве iPhone 11 Pro Max). ). Такое же поведение происходит в симуляторе как для iPhone 8, так и для iPhone 11 Pro Max.
Я хотел бы знать как, почему это происходит - и как предотвратить это. В журнале появляется предупреждающее сообщение (см. Ниже) примерно в то же время, когда изменяется высота, но я не уверен, связано ли это предупреждение с моей проблемой navigationBar (или как ее предотвратить). Объявление отображается успешно.
Если я установлю «myProfile.disableAds = true», показанная ниже функция displayInterstitialAd () не будет запущена, объявление не будет отображаться, а высота навигационной панели не изменится.
Вот мой код:
func createAndLoadInterstitial() -> GADInterstitial {
var interstitial = GADInterstitial(adUnitID: adUnitInterstitialID)
interstitial.delegate = self
interstitial.load(GADRequest())
print("Loading interstitial...")
return interstitial
}
func displayInterstitialAd() {
if interstitial.isReady && myProfile.disableAds == false {
print("Debug: Interstitial: NavBarFrame: \(navigationController?.navigationBar.frame)")
interstitial.present(fromRootViewController: self)
print("Debug: Interstitial: NavBarFrame: \(navigationController?.navigationBar.frame)")
}
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
print("Debug: InterstitialDelegateDidDismiss: NavBarFrame: \(navigationController?.navigationBar.frame)")
print("interstitialDidDismissScreen")
interstitial = createAndLoadInterstitial()
}
А вот и вывод:
Print Button tapped...Showing interstitial ad...
Debug: Interstitial: NavBarFrame: Optional((0.0, 44.0, 414.0, 44.0))
interstitialWillPresentScreen
Debug: InterstitialDelegateWillPresent: NavBarFrame: Optional((0.0, 44.0, 414.0, 44.0))
Debug: Interstitial: NavBarFrame: Optional((0.0, 44.0, 414.0, 44.0))
interstitialWillDismissScreen
2020-01-23 08:36:16.387071-0500 MyApp[53938:23813577] [View] First responder error: non-key window attempting reload - allowing due to manual keyboard (first responder window is <UIWindow: 0x101c4ca10; frame = (0 0; 414 896); hidden = YES; gestureRecognizers = <NSArray: 0x28380a880>; layer = <UIWindowLayer: 0x2836f10a0>>, key window is <UIWindow: 0x101c26b50; frame = (0 0; 414 896); gestureRecognizers = <NSArray: 0x2838e9860>; layer = <UIWindowLayer: 0x28368a8a0>>)
Debug: InterstitialDelegateDidDismiss: NavBarFrame: Optional((0.0, 44.0, 414.0, 96.0))
interstitialDidDismissScreen
Loading interstitial...