Storyboadにてバナー広告表示領域(AdView)を確保しそのUIViewの中心にバナー広告を表示させたいです。
下記のようにやってみたのですがうまくいきません。
bannerViewでなく普通のUIViewでも試してみたのですが表示されませんでした。
self.AdView.addSubview(bannerView)でなく
self.view.addSubview(bannerView)とするとbannerView,UIView共に表示されます。
なぜAdViewに表示されないのかわからず困っています。
よろしくお願いします。
import UIKit import GoogleMobileAds class ViewController: UIViewController { let AdMobID = "ca-app-pub-3940256099942544/6300978111"//Test var bannerView: GADBannerView! @IBOutlet weak var AdView: UIView! override func viewDidLoad() { super.viewDidLoad() showAd() } //広告表示 func showAd(){ bannerView = GADBannerView(adSize: kGADAdSizeBanner) bannerView.frame.size = CGSize(width:self.view.frame.width, height:bannerView.frame.height) bannerView.center = AdView.center bannerView.adUnitID = AdMobID bannerView.rootViewController = self bannerView.load(GADRequest()) self.AdView.addSubview(bannerView) } }
そもそもAdViewが表示されていないのでは?(制約がおかしい、など)
viewDidAppearの中に print(AdView) を追加して、そのログを書いて下さい。
<UIView: 0x7fb277c14b80; frame = (0 796.5; 414 99.5); autoresize = RM+BM; layer = <CALayer: 0x60000077ef80>>と表示されました。
これ、実行している端末はXS MaxかXRですかね?
xrのシミュレータです。
それだと下端には表示されているはずですよね。(セーフエリア外なのでアレですが‥)
AdView自体が表示されていることは確認しているのでしょうか?
色を変えてみてAdViewの部分の色が変わっていることが確認できているので表示できているという認識でいます。
AdViewの座標を画面中央辺りに変更してどうなるか試してみて下さい。
あと、viewDidAppearの中に print(bannerView) を追加して出力を教えて下さい。
中心あたりに配置したところAdViewのbannerViewの表示が確認できました。
位置的にAdViewの下に表示されました。
何が原因なのでしょうか?
printの結果これであってますかね?
Optional(<GADBannerView: 0x7ff18441a370; frame = (0 821.25; 414 50); clipsToBounds = YES; layer = <CALayer: 0x60000295ca20>>)
viewDidLayoutSubviewsに bannerView.center = AdView.center を追加(というか移動)してみて下さい。
回答2件
あなたの回答
tips
プレビュー