UiviewControllerの下部にADMOBバナーを追加しようとしています。
func addBannerViewToView() {
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-HIDDEN/HIDDEN"
bannerView.rootViewController = self
bannerView.delegate = self
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .bottom,
relatedBy: .equal,
toItem: view.safeAreaLayoutGuide.bottomAnchor,
attribute: .top,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
bannerView.load(GADRequest())
}
_
私はviewDidLoad
でこの関数を呼び出しますが、アプリは次のように分割されます。
キャッチされていない例外「NSINValidarGumentException」、Reason: 'NSlayoutConstraintの場合は、「:制約項目」がそれぞれビューまたはレイアウトガイドにする必要があります。
私は公式の例を使いました https://developers.google.com/admob/ios/banner
これは次のように動作しました。
func addBannerViewToView() {
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-HIDDEN/HIDDEN"
bannerView.rootViewController = self
bannerView.delegate = self
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .bottom,
relatedBy: .equal,
toItem: view,
attribute: .bottomMargin,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
bannerView.load(GADRequest())
}
_