斯威夫特:在广告
意外变焦我添加以下代码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()
出于某种原因,当我运行屏幕不完全显示的应用,但它有一个奇怪的变焦。会发生什么?
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)
}
但错误依然存在,我使用自动布局和大小类。
我自己解决了这个问题。在使用Spritekit和场景时,请记住总是配置现场之前,特别是现场的ScaleMode。将场景的scaleMode设置为:scaleMode= .Fill
后,缩放停止。
viewDidLoad
中存在的帧属性不反映将在屏幕上显示的视图的实际帧属性。在这种方法中,网点已经创建完毕,但还没有完成。
因此它是创建AdView中的正确位置,并设置其属性...
但布局必须要在其他地方做的 - 最好的地方是viewDidLayoutSubviews
。如果调用此方法,则可以确保框架属性设置正确。
在更改代码中的任何内容之前,您只需将帧记录在viewDidLoad
中并将其记录在viewDidLayoutSubviews
中 - 它们应该不同。然后,您可以继续前进,并在此处移动布局逻辑。
我将self.AdView.frame移至viewDidLayoutSubviews,但缩放仍在显示。 –
@OmarDlhz您是否尝试过记录帧并查看该属性是否有意义?顺便说一句:我忘了问:你使用自动布局? – luk2302
是的,我正在使用自动布局。我如何登录框架?我只是复制了它出现在mopub网站上的代码。 –
哪里写的代码或从哪里调用?从'viewDidLoad'? 'viewDidLoad'中没有布局信息,因此帧和大小可能是错误的。 – luk2302
@ luk2302是的,它位于viewDidLoad中,它们为什么错了? –