斯威夫特:在广告

问题描述:

意外变焦我添加以下代码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

UPDATE:

我感动的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) 

} 

但错误依然存在,我使用自动布局和大小类

+1

哪里写的代码或从哪里调用?从'viewDidLoad'? 'viewDidLoad'中没有布局信息,因此帧和大小可能是错误的。 – luk2302

+0

@ luk2302是的,它位于viewDidLoad中,它们为什么错了? –

我自己解决了这个问题。在使用Spritekit和场景时,请记住总是配置现场之前,特别是现场的ScaleMode。将场景的scaleMode设置为:scaleMode= .Fill后,缩放停止。

viewDidLoad中存在的帧属性不反映将在屏幕上显示的视图的实际帧属性。在这种方法中,网点已经创建完毕,但还没有完成。

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

布局必须要在其他地方做的 - 最好的地方是viewDidLayoutSubviews。如果调用此方法,则可以确保框架属性设置正确。

在更改代码中的任何内容之前,您只需将帧记录在viewDidLoad中并将其记录在viewDidLayoutSubviews中 - 它们应该不同。然后,您可以继续前进,并在此处移动布局逻辑。

+0

我将self.AdView.frame移至viewDidLayoutSubviews,但缩放仍在显示。 –

+0

@OmarDlhz您是否尝试过记录帧并查看该属性是否有意义?顺便说一句:我忘了问:你使用自动布局? – luk2302

+0

是的,我正在使用自动布局。我如何登录框架?我只是复制了它出现在mopub网站上的代码。 –