2015-01-19 6 views
0

Я успешно реализовал iAd в Swift, за исключением случаев, когда появляется объявление, он реконфигурирует размеры self. Как сделать так, чтобы объявление появилось перед экраном и не меняло размер экрана?iAd Reconfigures Screen: требуется iAd, чтобы появиться перед экраном - Swift

Это код, который я использовал:

class GameViewController: UIViewController, ADBannerViewDelegate { 

    var bannerView:ADBannerView? 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     super.viewDidLoad() 
     self.canDisplayBannerAds = true 
     self.bannerView?.delegate = self 
     self.bannerView?.hidden = true 
    } 
    func bannerViewDidLoadAd(banner: ADBannerView!) { 
     self.bannerView?.hidden = false 
    } 

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
     return willLeave 
    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
     self.bannerView?.hidden = true 
    } 
} 

Как сделать так, чтобы объявление появляется в передней части экрана, и не изменяет размер экрана?

+0

Если вы используете автоматическое поведение баннера 'self.canDisplayBannerAds = true', вам не нужно добавлять другой баннер. Автоматическое поведение изменяет размер представления контроллера представления (следовательно, запускает автоматическую компоновку) и размещает баннер в нижней части _window_. Если вам нужно что-то немного другое, вот небольшой пример моего [iAd simple example] (https://github.com/perlfly/iAdExample). Он создает единый баннер, а затем позволяет добавить баннер в верхней или нижней части представления контроллера представления. Это всего лишь пример, но может быть отправной точкой для ваших нужд. –

+0

@perlfly Спасибо за ваш вклад. У меня уже есть iAd, но моя проблема в том, что, как вы ссылаетесь, объявление запускает Auto-Layout и делает сам экран игры меньше. Я хочу, чтобы объявление появилось перед экраном и, следовательно, не влияло на макет экрана. – tdh

+0

Чтобы избежать изменения размера контроллера, просто не устанавливайте 'self.canDisplayBannerAds = true' (по умолчанию оно ложно). Затем вручную добавьте баннер, где вам это нужно. Я рекомендую вам использовать singleton bannedView. Обратите внимание, что способ, которым вы создаете баннер, неверен. См. Пример, упомянутый ранее, для создания способа его создания и добавления его в представление контроллера. –

ответ

0

Если вы хотите использовать self.candisplaybannerads = true без перемещения других элементов на экране, убедитесь, что ваши элементы не ограничены нижним руководством по макету. Когда реклама загружается с использованием self.candisplaybannerads = true, она перемещается вверх по расположению нижнего руководства по размещению, поэтому любые элементы, связанные с этим, будут перемещены. Если вы добавляете элементы программно, вы можете установить рамку, и они не должны перемещаться при загрузке объявления. Или, если вы используете IB и ограничения, убедитесь, что ваши элементы не ограничены нижним руководством по макету.