【问题标题】:How to add iAd banner programmatically in landscape in sprite kit swift如何在 sprite kit swift 中以编程方式在横向中添加 iAd 横幅
【发布时间】:2015-03-24 13:38:46
【问题描述】:

有人知道如何以编程方式添加 iAd 横幅吗?我正在使用 Sprite Kit 和 Swift 制作游戏。游戏处于横向模式。任何帮助将非常感激。

我使用的是 SKScene,而不是 ViewControllers fyi。

我也试过这段代码:

class GameViewController: UIViewController, ADBannerViewDelegate {

var adBannerView: ADBannerView!

override func viewDidLoad() {
    super.viewDidLoad()

    // Presenting scene without using GameScene.sks
    let skView = self.view as SKView
    let myScene = Menu(size: skView.frame.size)
    skView.presentScene(myScene)

    loadAds()

}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    println("Leaving app to the Ad")

    return true
}

func bannerViewDidLoadAd(banner: ADBannerView!) {

    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - adBannerView.frame.size.height / 2)
    adBannerView.frame = CGRectOffset(adBannerView.frame,0.0,0.0)
    adBannerView.hidden = false


    println("Displaying the Ad")
}


func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {

    adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height + view.bounds.size.height)
    println("Ad is not available")
}


func loadAds() {
    adBannerView = ADBannerView(frame: CGRect.zeroRect)
    adBannerView.frame = CGRectOffset(adBannerView.frame,0,0.0)
    adBannerView.delegate = self
    adBannerView.hidden = true
    view.addSubview(adBannerView)
}

这会在屏幕底部显示添加,但高度和宽度就像处于纵向模式一样,我需要使用横向模式的全宽和更少的高度来显示添加。

【问题讨论】:

标签: ios swift iad skscene


【解决方案1】:

此代码可能会解决您的问题:

let screenBounds: CGRect = UIScreen.mainScreen().bounds

var adBannerView: ADBannerView  
adBannerView = ADBannerView(frame: CGRectMake(0, 0, 50, screenBounds.width))
adBannerView.center = CGPoint(x: screenBounds.width/2, y: screenBounds.height-adBannerView.frame.height)
adBannerView.delegate = self
adBannerView.hidden = true
view.addSubview(adBannerView)

希望对你有帮助:)

【讨论】:

  • 嗯,感谢 Linus 的帮助。不幸的是,它仍然在做同样的事情。它在底部显示横幅,其宽度和高度与场景处于纵向模式时相同。然而,我的需要在景观中。我很感激帮助。你知道可能出了什么问题吗?
  • 现在横幅居中,但仍然只有纵向模式下的宽度和纵向模式下的高度。
  • 你会在横向和纵向模式之间切换吗?
  • 所以你甚至开始横向模式?请为我打印 screenBounds。高度和宽度
  • 是的。我刚刚复制了您的代码并在 loadAds() 中将其与我的代码进行了切换。与我在初始帖子中发布的代码相比,没有其他任何变化。
【解决方案2】:

这对我有用

    var UIiAd: ADBannerView = ADBannerView()

    override func viewWillAppear(animated: Bool) {

    UIiAd.setTranslatesAutoresizingMaskIntoConstraints(false)
    UIiAd.delegate = self
    self.view.addSubview(UIiAd)
    let viewsDictionary = ["bannerView":UIiAd]
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[bannerView]|", options: .allZeros, metrics: nil, views: viewsDictionary))
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[bannerView]|", options: .allZeros, metrics: nil, views: viewsDictionary))

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多