バナーのレイアウト制約は?
公式のサンプルでは Instrinsic Size で最低サイズをStoryboard指定し、
実行時にいい感じにサイズを算出してgadBannerViewに広告をセットする。
やってみたけど、いまいちちゃんと動かない。
気にいらなかったので自分はこうした。
コンテナの制約は下記5つ。
1. Aspect Ratio → multiplier=320:50 で。
2. bottom → SafeAreaに constant=0
3. horizontally center → SuperViewに対して constant=0
4. leading → SafeAreaに対して constant=0, priority=high
5. width → constant<=414
leadingの優先度を下げているのがポイント
幅を414以下にすることでlandscape時やiPadで大きくなりすぎるのを防いでる
これだけじゃダメ
公式をよく読むとheightについてこんなこと書いてある
デバイスの高さの 15% 以下、50 ポイント以上になります。
なるほど。
じゃあこんな制約もつけておくか・・・
6. height → RootViewに対して multiplier=0.15 & constant <= 0
ちなみにiPhone SEのLandscapeの時、320 * 0.15 = 48ポイント
48以下50以上。
崩壊しとるやん。
これで gadAdView#loadした時に読み込みエラーになって広告が出ないだろう。きっと。テストはしないめんどいから。
なんだか制約が複雑になりすぎて後で絶対混乱する自信があるwww
まあでもSEのlandscape以外はiPadも含めてこの制約でいける。
こだわりたい方はSizeClassesでゴニョゴニョしてね。
公式はこちら
https://developers.google.com/admob/ios/banner/adaptive
公式のsampleはこちら
https://github.com/googleads/googleads-mobile-ios-examples