2014-12-05 3 views
0

Swift에서 SpriteKit으로 게임을 개발 중입니다. 내 게임 화면 위에 iAd을 보여주고 싶습니다.iAd는 보여 주지만 도청에 반응하지 않습니다.

iAd이 표시되지만 탭하면 반응이 없습니다. 아무 반응이 없습니다. 수입 말게

클래스 GameViewController

import UIKit 

수입 SpriteKit : 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) 

} 

}

+0

아마도 배너보기의 프레임이 0이기 때문에 CGRect.zeroRect –

+0

(프레임 : CGRect.zeroRect)이 삭제되었지만 같은 결과가 나타납니다. – user1951072

+0

프레임을 설정해야합니다. 내 대답을 보라. –

답변

1

마지막으로 문제가 발견되었습니다. 바로 여기에 func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { return willLeave } 어느 willLeave 거짓 거짓말! 진정한 가치를 되찾기 위해 변하십시오. 이제 모든 것이 잘됩니다!

0

내가 문제를 생각 여기

내 코드입니다 그게 네 배너 야. 뷰에는 프레임이 없습니다 (즉, CGRect.zeroRect) 클릭 할 수있는 영역이 없습니다. 적절한 프레임을 설정해야합니다. sizeThatFits:을 사용하면 배너 프레임을 현재 창에 맞게 적절하게 볼 수 있습니다. (Code adapted to Swift from this Obj-C answer.)

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 = CGRectGetHeight(contentFrame) - CGRectGetHeight(adRect) <--bottom of screen 
    adRect.origin.y = 0 // <-- top of screen 
    bannerView.frame = adRect 

    view.addSubview(bannerView) 
} 
+0

내 앱에 코드를 복사했지만 반응이 없습니다. 변경된 사항이 없습니다. – user1951072

+0

@ user1951072 좋아, 그럼 다른 일이 벌어지고 ... 사실'loadAds()'를'viewDidAppear'에 넣으면 어떻게 될까요? 차이가 있습니까? –

+0

'self.canDisplayBannerAds = true'를 추가하면 정상적으로 작동하지만 화면 하단에 광고가 남습니다. 화면 상단의 광고 표시를 원합니다. 내가 어떻게 해? – user1951072

관련 문제