【Swift】UITabBarの上にGoogle AdMobのバナーを追加する方法
iPhoneのタブバーの上にAdMobを表示させる方法。
StoryBoardのAutoLayoutで領域を設定する際は注意が必要。
cocoaPodsでAdMobを追加する
- Podfileを用意する
platform :ios, '8.0' pod 'Google-Mobile-Ads-SDK'
- Terminalから
$pod install
する
GoogleMobileAdsがFrameworkになったので、Bridging-Headerとかの用意は不要
コードでバナー領域を設定
バナーを表示するViewをコードで定義する方法。
import UIKit import GoogleMobileAds // ←追加 class FirstViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // バナー表示 var bannerView: GADBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) // bannerViewの開始位置=(x=0, y=親ビューの高さ(画面高さ) - タブバーの高さ49 - bannerViewの高さ50) bannerView.frame.origin = CGPointMake(0, self.view.frame.size.height - 49 - 50) // タブバーの上に表示 bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" // テスト用ID bannerView.rootViewController = self self.view.addSubview(bannerView) bannerView.loadRequest(GADRequest()) } }
StoryBoardでAutoLayoutを使ってバナー領域を設定
- StoryBoardでタブバーの上に右のライブラリーペインからUIViewをドラッグ&ドロップ
- 追加したUIViewに以下の制約を追加
- pin定義
- 左右 = 0
- 下 = 49(▼でViewを選択し画面下辺からの制約をつけること。49→タブバーの高さ)
- 他画面からの戻り時にバナーがタブバーの裏にまわってしまうため
- Constrain to margins = OFF
- Height = 50
- Outlet接続
import UIKit import GoogleMobileAds // ←追加 class FirstViewController: UIViewController { @IBOutlet weak var bannerView: GADBannerView! // ←Outlet接続 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. // bannerViewはStoryBoardでAutoLayout定義ずみ // Pin:左右=0, 下=Viewを選択し画面下辺から49、Constrain to margins=OFF, Height=50 // ★下はViewを選択しないと、他画面から戻った際にタブバーの裏にまわってしまう★ bannerView.adSize = kGADAdSizeSmartBannerPortrait bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" // テスト用ID bannerView.rootViewController = self bannerView.loadRequest(GADRequest()) } }