在iAds橫幅改變場景的情況下,我在執行iAds遊戲時遇到麻煩,例如每次廣告加載時,都會使屏幕抖動。請幫助解決方案,以避免這種情況發生。每次加載iAd廣告橫幅時,iAds橫幅都會跳躍/改變場景的大小。
class GameViewController: UIViewController,ADBannerViewDelegate{
@IBOutlet var adBannerView: ADBannerView? //connect in IB connection inspector with your ADBannerView
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
var defaultsV = NSUserDefaults.standardUserDefaults();
defaultsV.setInteger(0, forKey: "gameOverCount")
defaultsV.setBool(false, forKey: "firstSessionEnded")
defaultsV.synchronize()
//self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)
self.adBannerView!.delegate = self
self.adBannerView!.hidden = true //hide until ad loaded
self.canDisplayBannerAds = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
self.adBannerView?.sizeToFit()
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
func bannerViewWillLoadAd(banner: ADBannerView!) {
NSLog("bannerViewWillLoadAd")
//self.canDisplayBannerAds = true
self.adBannerView!.hidden = true //hide until ad loaded
self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
NSLog("bannerViewDidLoadAd")
self.adBannerView!.frame = CGRectMake(0, self.view.frame.size.height-self.adBannerView!.frame.size.height, self.adBannerView!.frame.size.width, self.adBannerView!.frame.size.height)
self.adBannerView!.hidden = false //now show banner as ad is loaded
//self.canDisplayBannerAds = true
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
NSLog("bannerViewDidLoadAd")
//optional resume paused game code
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
NSLog("bannerViewActionShouldBegin")
//optional pause game code
return true
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
NSLog("bannerView")
self.adBannerView!.hidden = true
}