2015-06-20 78 views
1

意外變焦我添加以下代碼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中,它們爲什麼錯了? –

回答

0

我自己解決了這個問題。在使用Spritekit和場景時,請記住總是配置現場之前,特別是現場的ScaleMode。將場景的scaleMode設置爲:scaleMode= .Fill後,縮放停止。

0

viewDidLoad中存在的幀屬性不反映將在屏幕上顯示的視圖的實際幀屬性。在這種方法中,網點已經創建完畢,但還沒有完成。

因此它是創建AdView中的正確位置,並設置其屬性...

佈局必須要在其他地方做的 - 最好的地方是viewDidLayoutSubviews。如果調用此方法,則可以確保框架屬性設置正確。

在更改代碼中的任何內容之前,您只需將幀記錄在viewDidLoad中並將其記錄在viewDidLayoutSubviews中 - 它們應該不同。然後,您可以繼續前進,並在此處移動佈局邏輯。

+0

我將self.AdView.frame移至viewDidLayoutSubviews,但縮放仍在顯示。 –

+0

@OmarDlhz您是否嘗試過記錄幀並查看該屬性是否有意義?順便說一句:我忘了問:你使用自動佈局? – luk2302

+0

是的,我正在使用自動佈局。我如何登錄框架?我只是複製了它出現在mopub網站上的代碼。 –