2015-04-01 4 views
1

Я реализовал iAd interstitial в своем GameOverScene в SpriteKit. По какой-то причине, когда появляется межстраничное объявление, если я касаюсь того же места, что и кнопка, я все еще могу услышать щелчок на кнопке. Если пользователь случайно коснется этой кнопки и закрывает интерстициальную сцену, она станет черной, и я больше не вижу игру. В любом случае, как решить эту проблему.iAd Интерстициальное нажатие активирует кнопку сцены. Swift

Это мой код.

class GameOverScene: SKScene, ADInterstitialAdDelegate{ 

var interstitialAd:ADInterstitialAd! 
var interstitialAdView: UIView = UIView() 
var closeButton = UIButton.buttonWithType(UIButtonType.System) as UIButton 
var adBannerView = ADBannerView(frame: CGRect.zeroRect) 

func loadInterstitialAd() { 
    interstitialAd = ADInterstitialAd() 
    interstitialAd.delegate = self 
    scene?.paused = true 
} 

func interstitialAdWillLoad(interstitialAd: ADInterstitialAd!) { 

} 

func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) { 
    closeButton.frame = CGRectMake(10, 10, 20, 20) 
    closeButton.layer.cornerRadius = 10 
    closeButton.setTitle("x", forState: .Normal) 
    closeButton.setTitleColor(UIColor.blackColor(), forState: .Normal) 
    closeButton.backgroundColor = UIColor.whiteColor() 
    closeButton.layer.borderColor = UIColor.blackColor().CGColor 
    closeButton.layer.borderWidth = 1 
    closeButton.addTarget(self, action: "close:", forControlEvents: UIControlEvents.TouchDown) 

    interstitialAdView.addSubview(closeButton) 

    interstitialAdView = UIView() 
    interstitialAdView.frame = self.view!.bounds 
    view!.addSubview(interstitialAdView) 

    interstitialAd.presentInView(interstitialAdView) 
    UIViewController.prepareInterstitialAds() 
    println("called after inter ad loads its content ") 
} 

func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) { 

    interstitialAdView.removeFromSuperview() 
} 

func interstitialAdActionShouldBegin(interstitialAd: ADInterstitialAd!, willLeaveApplication willLeave: Bool) -> Bool { 

    return true 
} 

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

    closeButton.removeFromSuperview() 
    interstitialAdView.removeFromSuperview() 

} 

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) { 
    interstitialAdView.removeFromSuperview() 
    println("user clicked out of ad") 
} 

override init(size: CGSize) { 
    super.init(size: size) 
    loadInterstitialAd() 
} 

ответ

-2

попробовать UIControlEvents.TouchUpInside против приземления подкраски события в контроле, где палец находится внутри границ элемента управления

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