警告内容
AdMobのバナー広告で、公式の手順通り行うと、以下のような警告が出てしまいます。
https://developers.google.com/admob/ios/banner?hl=ja
‘bottomLayoutGuide’ was deprecated in iOS 11.0: Use view.safeAreaLayoutGuide.bottomAnchor instead of bottomLayoutGuide.topAnchor
private func addBannerViewToView(_ bannerView: GADBannerView) { bannerView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(bannerView) view.addConstraints( [NSLayoutConstraint(item: bannerView, attribute: .bottom, relatedBy: .equal, toItem: bottomLayoutGuide, attribute: .top, multiplier: 1, constant: 0), NSLayoutConstraint(item: bannerView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0) ]) }
原因
原因としては、警告に書いている通りですが、bottomLayoutGuide
が、iOS 11で非推奨になったためです。
解決方法
以下のように、
toItem: bottomLayoutGuide,
をtoItem: view.safeAreaLayoutGuide,
に変更し、attribute: .top,
をattribute: .bottom,
に変更することで警告が消えます!
private func addBannerViewToView(_ bannerView: GADBannerView) { bannerView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(bannerView) view.addConstraints( [NSLayoutConstraint(item: bannerView, attribute: .bottom, relatedBy: .equal, toItem: view.safeAreaLayoutGuide, attribute: .bottom, multiplier: 1, constant: 0), NSLayoutConstraint(item: bannerView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0) ]) }