无法点击iPhone上的Admob广告

时间:2011-09-18 20:04:35

标签: iphone objective-c ios admob

我正在尝试在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方法。有更好的方法吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

嗯,问题似乎是我正在调整视图框架的大小,并将Ad放在此框架之外,因此它可以接收事件。当我想要显示广告时,似乎要解决调整第一个子视图的大小:

UIView *subview = [[self.view subviews] objectAtIndex:0];
subview.frame = frame;

此外,我必须使用UITabBarControllerDelegate跟踪标签更改,以隐藏广告。