ios - Swift:意外放大广告

标签 ios swift sprite-kit mopub

我使用以下代码添加了 MoPub 横幅广告:

 self.adView.delegate = self
    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height,
        screenWidth, MOPUB_BANNER_SIZE.height)
    self.view.addSubview(self.adView)
    self.adView.loadAd()

由于某种原因,当我运行该应用程序时,屏幕没有完全显示,但它有一个奇怪的缩放。会发生什么?

enter image description here

更新:

我将 adView 的框架移动到 viewDidLayoutSubviews(),如下所示:

override func viewDidLoad(){
 self.adView.delegate = self
    self.view.addSubview(self.adView)
    self.adView.loadAd()
}


  override func viewDidLayoutSubviews() {

    var screenSize: CGRect = UIScreen.mainScreen().bounds
    var screenWidth = screenSize.width

    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height,
        MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height)

}

但错误仍然存​​在,我正在使用自动布局和尺寸类

最佳答案

viewDidLoad 中存在的框架属性并不反射(reflect)将在屏幕上呈现的 View 的实际框架属性。在这种方法中,已经创建了网点等等,但还没有布局。

因此,这是创建 AdView 并设置其属性的正确位置...

但是布局必须在其他地方完成——最好的地方是viewDidLayoutSubviews。如果调用此方法,您可以确保框架属性设置正确。

在更改代码中的任何内容之前,您只需将框架记录到 viewDidLoad 并将它们记录到 viewDidLayoutSubviews - 它们应该不同。然后您可以继续将您的布局逻辑也移到那里。

关于ios - Swift:意外放大广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958946/

相关文章:

swift - swift toInt() 中的用户输入返回 nil

swift - ARAnchor到底是什么?

ios - 函数不从闭包返回值

ios - 是否可以使用 SpriteKit 生成/绘制纹理?

swift 3(SpriteKit): Making a projectile move

ios - 导航栏标题更改

ios - 如何在 iOS 中管理自定义单元格标签值?

swift - 如何让 Sprite 在点击屏幕时左右移动?

iOS 推送通知仅由开发设备接收

ios - iOS 发件人进入后台时 GCKChannel 断开连接