【发布时间】:2014-12-05 14:15:44
【问题描述】:
我正在用 Swift 中的SpriteKit 开发游戏。我想在我的游戏场景顶部显示iAd。
iAd 显示,但是当我点击它时,它没有反应。什么都没有发生。
这是我的代码:
import UIKit
导入 SpriteKit 导入 iAd
类 GameViewController: UIViewController, ADBannerViewDelegate, BackToMenuDelegate {
var bannerView:ADBannerView = ADBannerView()
var currentLevel:Int!
override func viewDidLoad() {
super.viewDidLoad()
// Configure the view.
let skView = self.view as SKView
skView.multipleTouchEnabled = false
/* Set the scale mode to scale to fit the window */
let gameScene = GameScene(size:skView.bounds.size)
gameScene.scaleMode = .AspectFill
gameScene.currentLevel = currentLevel
gameScene.gameViewController = self
skView.presentScene(gameScene)
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
}
override func shouldAutorotate() -> Bool {
return false
}
override func supportedInterfaceOrientations() -> Int {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
} else {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Release any cached data, images, etc that aren't in use.
}
override func prefersStatusBarHidden() -> Bool {
return true
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
bannerView.hidden = false
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
return willLeave
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
bannerView.hidden = true
}
func loadAds(){
bannerView.delegate = self
bannerView.hidden = true
var adRect = CGRectZero
let contentFrame = self.view.bounds
adRect.size = bannerView.sizeThatFits(contentFrame.size)
adRect.origin.y = 0
bannerView.frame = adRect
self.view.addSubview(bannerView)
}
func backToMenu(){
self.navigationController!.popToRootViewControllerAnimated(true)
let skView = self.view as SKView
skView.presentScene(nil)
}
func shareScore(score:Int){
var objectsToShare = [AnyObject]()
let textToShare = "I just got \(score) points in BlockCracker! Check out this App!"
objectsToShare.append(textToShare)
if let myWebsite = NSURL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=611627312&mt=8")
{
objectsToShare.append(myWebsite)
}
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeAddToReadingList,UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard,UIActivityTypePostToFlickr,UIActivityTypePostToVimeo,UIActivityTypeMail,UIActivityTypeMessage]
self.presentViewController(activityVC, animated: true, completion: nil)
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
}
}
【问题讨论】:
-
可能是因为你的横幅视图有零帧:CGRect.zeroRect
-
我删除了 (frame: CGRect.zeroRect) 但结果相同
-
你需要设置一个框架。看我的回答。
-
设置一个框架。并检查是否有除 iAd 框架之外的其他框架。
-
@David 我是 iOS 开发新手,你能告诉我代码吗?