我使用以下代码添加了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()
由于某种原因,当我运行应用程序时,屏幕不会完全显示,但它有一个奇怪的缩放。可能会发生什么?
更新
我将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)
}
但错误仍然存在,我正在使用自动布局和尺寸类。
答案 0 :(得分:0)
viewDidLoad
中存在的框架属性不反映将在屏幕上显示的视图的实际框架属性。在这种方法中,出口已经创造了所有这些,但尚未铺设。
因此,它是创建AdView的正确位置,设置其属性......
但是布局必须在其他地方完成 - 最好的地方是viewDidLayoutSubviews
。如果调用此方法,则可以确保正确设置了框架属性。
在更改代码中的任何内容之前,您只需在viewDidLoad
中记录框架并将其记录在viewDidLayoutSubviews
中 - 它们应该是不同的。然后你可以继续在那里移动你的布局逻辑。
答案 1 :(得分:0)
我自己解决了这个问题。使用Spritekit和场景时,请记住在呈现场景之前始终配置场景,特别是场景的 ScaleMode 。将场景的scaleMode设置为:argc
后,缩放停止发生。