Мне пришлось внести некоторые изменения в решение, опубликованное NJones, поскольку возникла проблема с тем, что объявление не показывалось поверх всех остальных ячеек / представлений.
Сначала убедитесь, что ваш tableViewController является AdBannerViewDelegate.:
@interface MyTableViewController () <ADBannerViewDelegate>
Добавление AdBanner в tableviewcontroller:
- (void)viewDidLoad {
[super viewDidLoad];
...
ADBannerView *adBanner = [[ADBannerView alloc]initWithAdType:ADAdTypeBanner];
adBanner.delegate = self;
self.tableView.tableFooterView = adBanner;
}
Код для размещения рекламного баннера взят из NJones, я добавил только последнюю строку, чтобы перенести рекламный баннер вfront:
-(void)positionAdBanner {
ADBannerView *adBanner = (ADBannerView *) self.tableView.tableFooterView;
if (adBanner) {
CGRect iAdFrame = adBanner.frame;
CGFloat newOriginY = self.tableView.contentOffset.y + self.tableView.frame.size.height - iAdFrame.size.height;
CGRect newIAdFrame = CGRectMake(iAdFrame.origin.x, newOriginY, iAdFrame.size.width, iAdFrame.size.height);
adBanner.frame = newIAdFrame;
[self.tableView bringSubviewToFront:adBanner];
}
}
Эта функция вызывается всякий раз, когда представление собирается расположить свои подпредставления (так что вам нужно только здесь, не нужно проверять прокрутку и т. д.):
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
[self positionAdBanner];
}
Вы также должны обработать методы ADBannerViewDelegate:
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
banner.hidden = NO;
[self positionAdBanner];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
banner.hidden = YES;
}