广告覆盖了表格视图

时间:2019-06-27 09:33:55

标签: ios swift admob

我创建了一个表格视图,其底部具有一个AdMob广告横幅。如果用户有高级服务,则不会使用代码advertisementBanner.isHidden = true来展示广告。

问题是当显示广告时,我无法一直滚动到底部,因为它已经一直向下滚动,但是广告覆盖了该区域。

The image of the tableview

如您所见,我不在底部,而且由于已经位于“底部”,因此无法向下滚动。所以我的问题是:

有什么办法可以使我的“滚动”时间更长?或者,您还有其他解决方法可以解决吗?谢谢。

这是我当前的代码:

//If no advertisement is shown.
func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError)
{
    advertisementBanner.isHidden = true
}
func adViewDidReceiveAd(_ bannerView: GADBannerView)
{
    //What should I insert here to "make tableview even longer"
}

3 个答案:

答案 0 :(得分:0)

您可以将adView移到tableViews footerView。

func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError)
{
    tableView.tableFooterView = bannerView
}
func adViewDidReceiveAd(_ bannerView: GADBannerView)
{
    tableView.tableFooterView = nil
}

答案 1 :(得分:0)

由于@ manishsharma93,我设法解决了问题。

我没有将@IBOutlet添加到Height中,而是将其添加到了底部约束中。

@IBOutlet weak var topConstraint: NSLayoutConstraint!

然后从那里添加一个约束,以更改tableview和Navigationcontroller之间的空间,如下所示:

func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError)
{
    advertisementBanner.isHidden = true //Hiding the ad banner
    topConstraint.constant = 0 //Adding 0 constraint from bottom to tableview

    tableView.layoutIfNeeded()
    tableView.updateConstraints()
}

然后,如果广告已成功部署,我将得到以下信息:

func adViewDidReceiveAd(_ bannerView: GADBannerView)
{
    topConstraint.constant = 100 //Adding 100 "constraints" to bottom

    tableView.layoutIfNeeded()
    tableView.updateConstraints()
}

我添加了“ 100”,因为广告横幅的高度为100。

答案 2 :(得分:0)

在您的storyboard中,创建一个高度为200的视图,并在屏幕底部进行调整。将您的Tableview设置为其上方。现在将Admob Ad加载到您的底部视图中。然后为它的swift文件创建一个针对其Height约束的出口。像

@IBOutlet var adViewHeight: NSLayoutConstraint!

现在像下面那样调整您的逻辑

if (showAd) // depending on your location
{
     adView.isHidden = false;
     adViewHeight.constant = 200;
}  
else { // hide ad
     adView.isHidden = true;
     adViewHeight.constant = 0;
}