Stack Viewを使うと広告が表示されないときの処理が便利だった。
Stack Viewについては以前に書いたページを参照。
【Swift4】縦長のスクロール画面をscrollViewとstackViewを使って作る。
【Swift4】UITableViewの基本のき。
スクロールビューにスタックビューを入れていたり、高さの制限をかけていないビュー(テーブルビュー等)と一緒にスタックビューを使っていると、バナービューをisHiddenにすると綺麗にトルツメされるのですごく便利。
バナービューの状態の取得などについては下記サイトを参照。
バナー広告 | iOS | Google Developers
GADBannerViewDelegateと、
bannerView.delegate = selfを、
設定しておけば広告リクエストの状態が受け取れます。
それを利用してバナービューの表示非表示を決めます。
先に、Storyboardでバナービューのishiddenにチェックを入れておくと広告を受け取った時点でバナービューが表示されます。
以下サンプルコード。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import UIKit import Firebase class ViewController: UIViewController, GADBannerViewDelegate { @IBOutlet weak var bannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716" //テスト用ID bannerView.rootViewController = self bannerView.delegate = self bannerView.load(GADRequest()) } /// Tells the delegate an ad request loaded an ad. func adViewDidReceiveAd(_ bannerView: GADBannerView) { print("こうこくをうけとった!") UIView.animate(withDuration: 0.25) { () -> Void in bannerView.isHidden = false } } /// Tells the delegate an ad request failed. func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) { print("こうこくうけとりしっぱい: \(error.localizedDescription)") bannerView.isHidden = true } } |