2014-09-17 8 views

Antwort

1

Ich kann auch keine Antwort finden, warum das eingebaute Framework keine Schaltfläche zum Schließen bietet, aber ich benutze die folgende Lösung.

//iAD interstitial definition with custom placeHolderView and close button 
//you do not need to add anything to interface builder. All is done with code 

var interstitial:ADInterstitialAd! 
var placeHolderView:UIView! 
var closeButton:UIButton! 

//Full Implemantation of iAD interstitial and delegate methods 

func cycleInterstitial(){ 
// create a new interstitial. We set the delegate so that we can be notified 
    interstitial = ADInterstitialAd() 
    interstitial.delegate = self; 
} 

func presentInterlude(){ 
    // If the interstitial managed to load, then we'll present it now. 
    if (interstitial.loaded) { 

     placeHolderView = UIView(frame: self.view.frame) 
     self.view.addSubview(placeHolderView) 

     closeButton = UIButton(frame: CGRect(x: 270, y: 25, width: 25, height: 25)) 
     //add a cross shaped graphics into your project to use as close button 
     closeButton.setBackgroundImage(UIImage(named: "cross"), forState: UIControlState.Normal) 
     closeButton.addTarget(self, action: Selector("close"), forControlEvents: UIControlEvents.TouchDown) 
     self.view.addSubview(closeButton) 


     interstitial.presentInView(placeHolderView) 
    } 
} 

// iAd Delegate Mehtods 

// When this method is invoked, the application should remove the view from the screen and tear it down. 
// The content will be unloaded shortly after this method is called and no new content will be loaded in that view. 
// This may occur either when the user dismisses the interstitial view via the dismiss button or 
// if the content in the view has expired. 

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!){ 
    placeHolderView.removeFromSuperview() 
    closeButton.removeFromSuperview() 
    interstitial = nil 

    cycleInterstitial() 
} 


func interstitialAdActionDidFinish(_interstitialAd: ADInterstitialAd!){ 
    placeHolderView.removeFromSuperview() 
    closeButton.removeFromSuperview() 
    interstitial = nil 

    println("called just before dismissing - action finished") 

} 

// This method will be invoked when an error has occurred attempting to get advertisement content. 
// The ADError enum lists the possible error codes. 
func interstitialAd(interstitialAd: ADInterstitialAd!, 
    didFailWithError error: NSError!){ 
     cycleInterstitial() 
} 


//Load iAd interstitial 
func dislayiAdInterstitial() { 
    //iAd interstitial 
    presentInterlude() 
} 


func close() { 
    placeHolderView.removeFromSuperview() 
    closeButton.removeFromSuperview() 
    interstitial = nil 

} 

cross

0

interstitielle = InterstitialAd mit() bewirkt, dass mir das gleiche Problem wie Sie.

Wenn Sie jedoch den folgenden Code in Ihrer AppDelegate Anwendung Funktion sind:

UIViewController.prepareInterstitialAds() 

Dann können Sie eine Interstitial-Anzeige mit diesem erzeugen:

viewController.requestInterstitialAdPresentation() 

Ich bin nicht sicher, wie man die Rückrufe, obwohl.

Verwandte Themen