2015-10-16 2 views
1

Я использую Xcode 7, Swift 2.0. Эта проблема возникает как в симуляторе, так и в моем приложении, которое доступно в App Store. Много раз (не всегда), когда я выполняю segue в своем приложении, adBanner немного бегает, прежде чем загружать новое объявление. Я смущен, потому что объявление доступно, даже когда оно белое!iAd баннер по белому на segue

Вот мой код:

Я инициализировать ADBannerView:

var adBanner = ADBannerView(adType: ADAdType.Banner) 

В моем viewDidLoad:

self.canDisplayBannerAds = true 
self.adBanner.delegate = self 
self.adBanner.hidden = true 
self.adBanner.alpha = 0 
self.adBanner.frame.origin.y = self.view.frame.height-self.adBanner.frame.height 
self.view.addSubview(self.adBanner) 

Мой viewDidDisappear:

override func viewDidDisappear(animated: Bool) { 

     super.viewDidDisappear(true) 

     adBanner.removeFromSuperview() 

     if(deviceType.isEqualToString("iPhone")) 
     { 

      adBanner.delegate = nil 

     } 

    } 

В моем классе:

func bannerViewDidLoadAd(banner: ADBannerView!) 
    { 

     self.adBanner.hidden = false 
     UIView.animateWithDuration(0.5, animations: {self.adBanner.alpha = 1}) 

    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) 
    { 
     self.adBanner.hidden = true 
     UIView.animateWithDuration(0.5, animations: {self.adBanner.alpha = 0}) 

    } 

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool 
    { 

     return willLeave 

    } 

    func bannerViewWillLoadAd(banner: ADBannerView!) { 

    } 

При запуске приложения с Xcode, я иногда получаю это сообщение, несмотря на то, что я реализован метод делегата:

ADBannerView: Необработанная ошибка (ни один делегата или делегат не реализует didFailToReceiveAdWithError :): Error Domain = ADErrorDomain Code = 5 "Операция не может быть выполнена. вид Баннера виден, но не содержание»UserInfo = 0x9632d30 {ADInternalErrorCode = 5, NSLocalizedFailureReason = Баннер вид виден, но не содержание}

Edit: Проблема заключается в использовании canDisplayBannerAds результатов методов делегата не называют больше. info here: Hiding iAd ADBannerView in Swift when ad fails to load - no delegate or delegate does not implement didFailToReceiveAdWithError

ответ

3

Вот какой рабочий код для вас, который работал только для меня. Это не нужно self.candisplaybannerads = true, так как у меня были некоторые проблемы с этим. Объявление автоматически изменяет размер в соответствии с размером экрана и находится на внизу экрана. В моей игре spritekit у нее не было проблем с тем, чтобы стать белым при переходе.

import iAd 

class viewController: UIViewController, ADBannerViewDelegate { 

var AdBanner = ADBannerView() 

override func viewDidLoad() { 
    super.viewDidLoad() 

     /* Ad Banner Settings */ 

     AdBanner = ADBannerView() 
     AdBanner.frame = CGRectZero 
     AdBanner.delegate = self 
     self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height) 
     AdBanner.backgroundColor = UIColor.clearColor() 
     self.view.addSubview(AdBanner) 

} 

/* All iAd Functions */ 

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
/* whatever you need */ 
    return true 
} 

func bannerViewActionDidFinish(banner: ADBannerView!) { 
/* whatever you need */ 
} 

func bannerViewDidLoadAd(banner: ADBannerView!) { 
    AdBanner.hidden = false 
} 


func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    NSLog("Error Loading Ad") 
/* whatever you need */ 
    AdBanner.hidden = true 
} 
func bannerViewWillLoadAd(banner: ADBannerView!) { 
/* whatever you need */ 
} 
+1

Спасибо! Кажется, проблема в том, что строка кода canDisplayBannerAds очень странная. То, что я закончил, - это просто внедрение одного adBanner в приложении appDelegate. Более подробную информацию можно найти здесь: http://stackoverflow.com/questions/28514758/swift-iad-more-than-10-instances-of-adbannerview-warning-and-cgaffinetransform – yaboi

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