我创建了一个表格视图,其底部具有一个AdMob广告横幅。如果用户有高级服务,则不会使用代码advertisementBanner.isHidden = true
来展示广告。
问题是当显示广告时,我无法一直滚动到底部,因为它已经一直向下滚动,但是广告覆盖了该区域。
如您所见,我不在底部,而且由于已经位于“底部”,因此无法向下滚动。所以我的问题是:
有什么办法可以使我的“滚动”时间更长?或者,您还有其他解决方法可以解决吗?谢谢。
这是我当前的代码:
//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"
}
答案 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;
}