我正在尝试在iPhone应用程序中显示admob广告,该应用程序使用TabBarController,带有导航控制器和tableviews。广告正在展示,但我无法点击它们。每个选项卡都继承自父UIViewController类,我在其中使用以下代码初始化广告:
bannerView = [[GADBannerView alloc]
initWithFrame:CGRectMake(0.0,
self.view.frame.size.height,
GAD_SIZE_320x50.width,
GAD_SIZE_320x50.height)];
bannerView.rootViewController = self;
[self.view addSubview:bannerView];
GADRequest *adRequest = [GADRequest request];
[bannerView loadRequest:adRequest];
这是adViewDidReceiveAd:aBannerView委托方法中的代码:
[UIView animateWithDuration:0.5
animations:^{
CGRect frame = CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
self.view.frame.size.height-48.0f);
self.view.frame = frame;
aBannerView.frame = CGRectMake(0.0,
frame.size.height,
aBannerView.frame.size.width,
aBannerView.frame.size.height);
}];
如果我将广告放在关键窗口前面,广告是可点击的,但是这样做我无法制作正确的动画来展示它,并且仍然在所有窗口的顶部,所以我必须跟踪它与viewWillDisappear方法。有更好的方法吗?
提前谢谢。
答案 0 :(得分:0)
嗯,问题似乎是我正在调整视图框架的大小,并将Ad放在此框架之外,因此它可以接收事件。当我想要显示广告时,似乎要解决调整第一个子视图的大小:
UIView *subview = [[self.view subviews] objectAtIndex:0];
subview.frame = frame;
此外,我必须使用UITabBarControllerDelegate跟踪标签更改,以隐藏广告。