2016-02-03 19 views
5

ADInterstitialAdを通常のUIViewとして扱い、用途に柔軟性を持たせたいと考えています。インタースティシャル広告のiAdカスタム移行

たとえば、デフォルトのインタースティシャル遷移はslide up from the bottom of the screenです。私はそれが好きではない。最初にアルファ値を0に変更し、1に変更することは可能ですか?

もう1つの例は、フルスクリーンの前にUIViewを少し追加していることです。つまり、ちょうどADInterstitialAdの移行処理中ですか? ADInterstitialAdは、ビュー階層の最上位ビューになる傾向があります。私は通常のUIViewとしてADInterstitialAdを扱うことができれば、これを行うことができると思います。どのようにこれを達成するための任意の提案?

+0

ちょうど親切な思い出、iADはAppleによって2016年6月に閉鎖されます.. – x4snowman

+0

ありがとう!それを知らなかった。そして、交換はAppleによって提供されるでしょうか? – brumbrum

+0

ここには交換はありません.. https://developer.apple.com/news/?id=01152016a – x4snowman

答えて

3

あなたはちょうどあなたが望む効果を達成するために、あなたのAdBannerViewのアルファ値をアニメーション化できます。ここでは

import iAd 

private var bannerView: AdBannerView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Create your banner view however you want, and add it to your UI. 
    bannerView = AdBannerView() 
    bannerView.alpha = 0 
    addSubview(bannerView) 
} 

// When you want to show the ad, animate the alpha. 
private func animateInAd(appearing: Bool) { 
    UIView.animateWithDuration(1.0) [weak self] { 
     self?.bannerView.alpha = appearing ? 1 : 0 
    } 
} 

あなたがbannerViewを提示することができ、別の方法です。それがアップし、スライドを終了したときには、広告の上にビューを削除することができます

import iAd 

private var coverView: UIView! 
private var bannerView: AdBannerView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Create your banner view however you want, and add it to your UI. 
    bannerView = AdBannerView() 
    addSubview(bannerView) 

    // Create the cover view however you want, and add it above the banner view. 
    coverView = UIView() 
    addSubview(coverView) 
} 

private func animateInAd(appearing: Bool) { 
    let hideAdPosition = view.frame.size.height   
    let showAdPosition = hideAdPosition - bannerView.frame.size.height 

    UIView.animateWithDuration(1.0, animations: [weak self] { 
     self?.bannerView.frame.origin.y = appearing ? showAdPosition : hideAdPosition 
    }) { [weak self] success in 
     self?.animateCover(appearing: !appearing) 
    } 
} 

private func animateCover(appearing: Bool) { 
    UIView.animateWithDuration(1.0) [weak self] { 
     self?.coverView.alpha = appearing ? 1 : 0 
    } 
} 

EDIT:

ADInterstitialAd Sについては、それらがNSObjectを継承し、あなたが呼び出す必要があり、明示的なメソッドを持っているように見えますそれらを提示するために注文する(presentInView:およびpresentFromViewController:)。したがって、これらの広告の表示方法を制御するための公開APIはありません(これは、広告がユーザーに表示されることをAppleが保証するためのものです)。

+0

oh nice。インタースティシャルはどうですか? – brumbrum

+0

2番目のシナリオに関する詳細情報を提供できますか?バナービューの上に2番目のビューを表示することを意味しますか?それにアルファトランジションを適用しますか? – Mark

+0

質問の2番目の部分で質問していると思われるコードを含むように回答を更新しました。 – Mark

1

私はこの経験はありませんが、documentationを見ると、独自のビューを作成し、presentInView:を使用して、そのビューに必要なアニメーションを実行できるはずです。

関連する問題