2016-02-03 25 views
5

Vorrei trattare ADInterstitialAd s come normali UIView per ottenere una certa flessibilità nel loro utilizzo.Transizione personalizzata iAd per annunci interstitial

Ad esempio, la transizione interstitial predefinita è slide up from the bottom of the screen. Non mi piace. È possibile modificare il valore alfa prima di essere 0 e poi cambiarlo in 1?

Un altro esempio è avere un UIView diverso davanti all'aggiunta a schermo intero per un breve periodo di tempo, precisamente durante il processo di transizione dello ADInterstitialAd? ADInterstitialAd s tendono ad essere la vista più in alto nelle gerarchie di viste. Immagino di poterlo fare se riesco a trattare ADInterstitialAd s come un normale UIView. Qualche suggerimento su come ottenere questo?

+0

Solo un gentile promemoria, iAD sarà chiuso da Apple a giugno 2016 .. – x4snowman

+0

Bene grazie! Non ne ero consapevole. E la sostituzione sarà fornita da Apple? – brumbrum

+0

Nessuna sostituzione qui .. https://developer.apple.com/news/?id=01152016a – x4snowman

risposta

3

Si potrebbe semplicemente animare il valore alfa della vostra AdBannerView per ottenere l'effetto desiderato:

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 
    } 
} 

Ecco un altro modo è possibile presentare bannerView. È possibile rimuovere la vista in cima alla pubblicità quando ha finito di scorrere su:

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:

Per quanto riguarda ADInterstitialAd s, quelli sembrano ereditare da NSObject e hanno metodi espliciti è necessario chiamare in per presentarli (presentInView: e presentFromViewController:). Pertanto, non esiste alcuna API pubblica per controllare il modo in cui vengono presentati questi annunci (è probabile che sia fatto apposta per far sì che Apple possa garantire che l'annuncio venga mostrato all'utente).

+0

oh bello. che dire interstiziale? – brumbrum

+0

Puoi fornire maggiori informazioni sul secondo scenario? Intendi avere una seconda visione in cima alla visualizzazione banner? E quindi applicare una transizione alfa ad esso? – Mark

+0

Ho aggiornato la mia risposta per includere il codice per quello che credo stiate chiedendo nella seconda parte della vostra domanda. – Mark

1

Non ho esperienza con questo, ma guardando lo documentation dovresti essere in grado di creare la tua vista personale, usare presentInView: ed eseguire qualsiasi animazione tu desideri su quella vista.