2014-09-17 9 views
5

मैं अपने ऐप में इंटरस्टिशियल विज्ञापनों को लागू करने के लिए स्विफ्ट का उपयोग कर रहा हूं। मैंने इसे अंतरालीय विज्ञापन दिखाने में कामयाब रहा है, लेकिन विज्ञापन से छुटकारा पाने के लिए कोई करीबी 'एक्स' बटन नहीं है। ऐसा क्यों है?इंटरस्टिशियल आईएडी के पास कोई करीबी 'एक्स' बटन नहीं है

उत्तर

1

मुझे यह भी नहीं मिला कि अंतर्निहित ढांचा बंद बटन प्रदान क्यों नहीं करता है लेकिन मैं निम्नलिखित समाधान का उपयोग करने के साथ समाप्त होता हूं।

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

बीचवाला = InterstitialAd() का उपयोग कर मुझे आप के रूप में एक ही समस्या का कारण बनता है।

हालांकि, अगर आप अपने AppDelegate के आवेदन समारोह में यह कोड शामिल: फिर

UIViewController.prepareInterstitialAds() 

, यदि आप किसी मध्यवर्ती विज्ञापन इस का उपयोग करते हुए उत्पन्न कर सकते हैं:

viewController.requestInterstitialAdPresentation() 

मुझे यकीन है कि कैसे प्राप्त करने के लिए नहीं कर रहा हूँ हालांकि, कॉलबैक।

0

आईओएस 9.2.1, Xcode 7.2.1, एआरसी सक्षम

कृपया मेरे पोस्ट पढ़ें:

https://stackoverflow.com/a/35467510/4018041

मैं अभी भी presentFromViewController: विधि का उपयोग करें।

आशा है कि इससे मदद मिलती है! चीयर्स।

संबंधित मुद्दे