2015-09-25 9 views
0

Im создание тестового приложения, чтобы показать межстраничное объявление iAd, которое я должен реализовать вручную для просмотра. хорошо я сделал в основном все, но после представления интерстициальных ОВРОВ с когда-то она закрывает и дает мне: Service session terminated.iAd межстраничный сеанс службы завершен

Вот мой код:

var interAd = ADInterstitialAd() 
    var interAdView: UIView = UIView() 

    var closeButton = UIButton(type: UIButtonType.System) as UIButton 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     closeButton.frame = CGRectMake(10, 13, 20, 20) 
     closeButton.layer.cornerRadius = closeButton.frame.size.width/2 
     closeButton.clipsToBounds = true 
     closeButton.setTitle("x", forState: .Normal) 
     closeButton.contentVerticalAlignment = UIControlContentVerticalAlignment.Top 
     closeButton.setTitleColor(UIColor(red: 109/255, green: 109/255, blue: 109/255, alpha: 1), forState: .Normal) 
     closeButton.backgroundColor = UIColor.whiteColor() 
     closeButton.layer.borderColor = UIColor(red: 109/255, green: 109/255, blue: 109/255, alpha: 1).CGColor 
     closeButton.layer.borderWidth = 2 
     closeButton.addTarget(self, action: "close:", forControlEvents: UIControlEvents.TouchDown) 


    } 

    func close(sender: UIButton) { 
     closeButton.removeFromSuperview() 
     interAdView.removeFromSuperview() 
    } 

    @IBAction func showAd(sender: UIButton) { 
     loadAd() 
    } 

    func loadAd() { 
     print("load ad") 
     interAd = ADInterstitialAd() 
     interAd.delegate = self 
    } 

    func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) { 
     print("ad did load") 

     interAdView = UIView() 
     interAdView.frame = self.view.bounds 
     super.view.addSubview(interAdView) 

     interAdView.layer.transform = CATransform3DMakeTranslation(0, 500, 0) 
     UIView.animateWithDuration(0.4, animations: { 
      self.interAdView.layer.transform = CATransform3DMakeTranslation(0,0,0) 
      self.interAd.presentInView(self.interAdView) 
      UIViewController.prepareInterstitialAds() 
      self.interAdView.addSubview(self.closeButton) 

     }) 

    } 

    func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) { 

    } 

    func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) { 
     print("failed to receive") 
     print(error.localizedDescription) 

     closeButton.removeFromSuperview() 
     interAdView.removeFromSuperview() 

    } 

И еще одно, что интерстициальное должны быть представлены по статусу бар даже, но он показывает строку состояния, а его подарил:

Должно быть так: http://i.stack.imgur.com/vaTvK.png

но его приход со мной нравится: http://i.stack.imgur.com/f0p2T.png

ответ

0

Обсудить вашу первую проблему, Я думаю, что у вас есть interstitialAd в неправильном месте. попробуйте установить ниже метод viewdidload(), в котором вам нужно добавить addubview в свой супервизор. как это.

override func viewDidLoad() 
{ 
super.viewDidLoad() 
super.view.addSubview(interAdView) 
//write other stuff 

Обсуждая ваш второй вопрос, вам нужно Мануалы скрыть строку состояния в то время как ваш ADInterstitialAd представит. в методе делегата InterstitialAd. Я не очень знаком с SWIFT launguage, но, как я понимаю, я думаю, вам нужно скрыть Interstitial в этом методе.

private func loadInterstitial() { 
//statusbar hide 

и вам нужно снова показать

func interstitialDidDismissScreen (interstitial: GADInterstitial) { 
    //show statusbar 

Примечание: - Вот ссылка для скрытия и отображения статусной в СВИФТ.

How to hide iOS 7 status bar

Смежные вопросы