我希望在我的应用中添加AdMob横幅广告。我把它们放在每个屏幕的底部,它可以正常工作,但在UIViewControllers方面并不完全。
当我在UITableViewController上添加一个add时,它会从屏幕底部的正确位置开始,但是当我滚动它时,它随之移动。当我滚动表格时,我需要广告静态地停留在屏幕的底部。
这是我的代码:
- (void)displayGAD
{
// The frame of the banner is initialized off screen.
// If an ad loads then it will animate onto the screen.
self.bannerView = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0,
self.view.frame.size.height,
GAD_SIZE_320x50.width,
GAD_SIZE_320x50.height)];
self.bannerView.adUnitID = self.adUnitID;
self.bannerView.delegate = self;
self.bannerView.rootViewController = self;
[self.view addSubview:self.bannerView];
[self.bannerView loadRequest:[self createRequest]];
}
- (GADRequest *)createRequest
{
GADRequest *request = [GADRequest request];
#warning Comment this out before distribution
request.testDevices = [NSArray arrayWithObjects:@"84ea3d9789cabb0a34176cbb52c0f992", @"abf08fe141b95987d27ac068602605b8", GAD_SIMULATOR_ID, nil];
return request;
}
- (void)adViewDidReceiveAd:(GADBannerView *)view
{
NSLog(@"Received Ad");
[UIView animateWithDuration:1.0 animations:^ {
view.frame = CGRectMake(0.0,
self.view.frame.size.height - view.frame.size.height,
view.frame.size.width,
view.frame.size.height);
}];
}
- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error
{
NSLog(@"Failed to receive ad with error: %@", [error localizedFailureReason]);
}
我已经看到了关于如何将广告嵌入到表格视图中的多个示例,但没有关于我想要如何实现它的具体内容。关于这一点,我唯一看到的是我应该将表视图放入容器视图中,然后将广告添加到容器视图中。我不知道我会怎么做,因为这是一个UITableViewController。
答案 0 :(得分:4)
我发现实现这一目标的最简单方法是不使用专用的UITableViewController。我创建了一个UIViewController并在视图中添加了一个容器控制器。从那里我将容器控制器子类化为UITableViewController。我只是将所有与表视图相关的代码放在该子类中。然后,我将广告的加载和放置放在顶级UIViewController中。这样做意味着广告嵌入到与容器控制器相同的视图中。我刚刚制作它,以便我的广告横幅位于容器的顶部。这导致我能够使用表格视图滚动并且广告横幅不移动。