I am currently adding iAd banners into my SpriteKit game, and I have successfully got the ads showing. But when I go to remove the banner by pushing it off the bottom it does not move, even though it is the exact opposite to the code to get it to appear.
This is the function, which is called from a notification observer:
func hideBannerAd(notification:NSNotification)
{
if bannerAdVisible == true
{
println(bannerAd.frame);
UIView.beginAnimations("hideAd", context: nil);
bannerAd.frame = CGRectOffset(bannerAd.frame, 0, bannerAd.frame.size.height);
println(bannerAd.frame);
UIView.commitAnimations()
bannerAdVisible = false
bannerAd.cancelBannerViewAction()
}
}
The 2 println
statements produce the following:
(0.0, 1024.0, 768.0, 66.0)
(0.0, 1090.0, 768.0, 66.0)
So the position of the banner is being changed, but it is not shown on the screen.
If you know the problem, I would be grateful for a little help.
EDIT
I will add that the hideBannerAd
and all of the code to do with the ad is in the GamveViewController.
Problem Solved!
With the assistance from @aramusss comment I have found that I was calling the function to show the banner in the
viewWIllLayoutSubViews
function, so I moved it to theviewDidLoad
function and it now works!Thank you all for your help!