在放置adbannerview后,子视图显示在所有内容之后

时间:2015-08-10 14:52:42

标签: swift subview adbannerview displayobject

我有一个主视图和一个子视图。 一切都运作良好:我点击按钮"打开"在视图上,它显示了所有内容的子视图,我可以关闭子视图。

我决定在我的应用底部添加一个adBannerView。 当我运行应用程序时,adbannerView工作正常:将添加内容加载到我应用程序底部的框架中。 但是,当我点击按钮"打开"时,子视图不再显示在所有内容之上。 它显示在视图上的所有内容。 你能帮我解决这个问题吗?非常感谢你!

以下是我为adBannerView和subView实现的代码(我删除了与我的问题无关的其他代码):

import UIKit
import iAd

class ViewController: UIViewController, ADBannerViewDelegate {

@IBOutlet weak var boutonChangerPays: UIButton!
@IBOutlet weak var cadrePays: UIView! 
@IBOutlet weak var bannierePub: ADBannerView!

// Chargement initial de la Vue principale
override func viewDidLoad() {

    super.viewDidLoad()

    // Cadre Pays
    self.cadrePays.hidden = true

    // Banniere Ad
    self.canDisplayBannerAds = true
    self.bannierePub.delegate = self
    self.bannierePub.hidden = true
}

//*************************
// ADBANNERVIEW
// BANNIERE  DE  PUBLICITE
func bannerViewWillLoadAd(banner: ADBannerView!) {
    NSLog("bannierePub se charge")
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    self.bannierePub.hidden = false
}

func bannerViewActionDidFinish(banner: ADBannerView!) {
    NSLog("bannierePub a finit de se charger")
}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    NSLog("Action pendant que la bannière se charge")

    return true
}

//**************************************************************************
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// Retour de l'écran de détail
override func viewDidAppear(animated: Bool) {
    // Indicateur d'Activité : caché
    self.indicateurActivite.stopAnimating()
    self.indicateurActivite.hidden = true
}

// Bouton Changer Pays
@IBAction func boutonChangerPays(sender: UIButton) {

    // On affiche la Vue des Pays
    self.cadrePays.hidden = false
}       
}

2 个答案:

答案 0 :(得分:0)

您可以调用此函数将子视图置于一切之上。

self.view.bringSubviewToFront(self.yourSubviewName)

答案 1 :(得分:0)

令人惊讶的是,我通过尝试这个找到了解决方案:

在我点击按钮的功能中,我添加了以下代码:

self.view.addSubview(self.cadrePays)

它将子视图带回底部! 我希望不会“创造”许多子视图与另一个人叠加!

立场的限制根本没有得到尊重,我不得不把它集中在:

override func viewDidLayoutSubviews () {
self.cadrePays.center = self.view.center
}

SubView是水平居中的,但不是垂直的,但现在我觉得我非常接近解决方案。

希望它会帮助其他人!