ios - iAd 的位置在运行时有时会不同

标签 ios iphone swift iad landscape

我在 Storyboard 中创建了一个 iAd 横幅,并添加了以下四个约束:(高度:50,宽度:320,容器中的水平居中,距离 View 顶部 10)。有时,当我运行该应用程序时,iAd 横幅就位于我放置它的位置,其他时候它只是随机出现在屏幕底部。我的应用程序仅限于景观,只有当它与它有关时。我做错了什么?

import UIKit
import AVFoundation
import iAd

class ViewController: UIViewController, ADBannerViewDelegate {

    @IBOutlet weak var adBanner: ADBannerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Set ad banner settings
        self.canDisplayBannerAds = true
        self.adBanner?.delegate = self
        self.adBanner?.hidden = true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func bannerViewWillLoadAd(banner: ADBannerView!) {
        self.adBanner?.hidden = true
    }

    func bannerViewDidLoadAd(banner: ADBannerView!) {
        self.adBanner?.hidden = false
    }

    func bannerViewActionDidFinish(banner: ADBannerView!) {

    }

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
        return true
    }

    func bannerView(banner: ADBannerView!, didFailToRecieveAdWithError error: NSError!) {
        self.adBanner?.hidden = true  
    }
}

最佳答案

self.canDisplayBannerAds = true 正在创建出现在屏幕底部的横幅。 self.canDisplayBannerAds = true 可用于轻松在您的应用程序中实现 iAd 横幅的方式。这将为您创建一个 ADBannerView,并根据它是否从 iAd 网络接收到广告来显示或隐藏 ADBannerView。您需要从 viewDidLoad() 中删除 self.canDisplayBannerAds = true。当您在 Storyboard 中创建 ADBannerView 时,这不是必需的。

关于ios - iAd 的位置在运行时有时会不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29167324/

相关文章:

ios public static const 等价物

ios - 无法在 SwiftUI 的当前上下文中推断闭包类型

swift - 从框架加载 Swift 主 Storyboard和 View Controller

swift - 如何将 AttributedString 转换为 NSMutableString Swift?

ios - "GPUImage.h"未找到

ios - 如果像素是透明的,如何制作不响应触摸的 SKSpriteNode?

iphone - iOS RestKit 认证

iphone - 有没有办法在 iOS 上运行脚本?

ios - iPhone登录UINavigationController内的其他页面

swift - Swift 有任何控制台 REPL 吗?