如何将Apple的iAd添加到基于OpenGL的iPhone应用程序中?

时间:2010-10-24 16:37:31

标签: ios iphone opengl-es advertising

我希望通过Apple的iAds为我的基于OpenGL的iPhone应用程序带来一些收入。应用程序中的所有内容都是使用OpenGL完成的,包括菜单,按钮等。如何将iAd添加到我的应用程序?

更多信息:我查看了Apple的示例代码,但我仍然陷入困境。只是fyi我目前不使用任何视图控制器。我只有一个“窗口”。我尝试使用addSubView方法将bannerView添加到窗口,但它只是崩溃了应用程序。出于某种原因,这适用于MailComposerView。任何帮助表示赞赏!

更多信息:我创建了一个UIViewController的子类,并在其上放置了一个BannerAd。现在测试广告出现了。 如何使UIView的其余部分变得透明,以便广告显示(alpha为1.0),我还可以点击我在UIViewController下面的窗口上创建的OpenGL按钮

2 个答案:

答案 0 :(得分:4)

您是否可以将UIViewControllers添加到窗口中?

如果可以的话,创建一个UIViewController,其中包含一个ADBannerView的UIView(通过Interface Builder完成),并连接了相应的委托方法。

然后添加带有透明背景的UIViewController作为窗口的子视图。

祝你好运!


编辑:

您使用什么代码以编程方式添加ADBannerView?


关于UITouch passthrough。

两种方法。

在新的UIViewController中(使用Interface Builder将UIView背景设置为透明),你可以通过抛出这个来覆盖UITouch命中测试:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    // UIView will be "transparent" for touch events if we return NO
    return CGRectContainsPoint([adbanner frame], point));
}

使用上述方法。它处理横幅滑出视图,查看旋转等。当您返回NO(不在bannerview的边界内)时,它会认为该点不在此UIViewController中,然后将询问下一层。

第二种,虽然更简单的方法,有很大的错误空间,所以我只会在没有发布代码的情况下描述它。在添加UIViewController的视图之前,请更改UIView的框架,使其仅为AdBannerView的大小。此方法不考虑旋转,横幅滑入/滑出。你需要自己处理这些异常,这使得这种方法比看起来更麻烦。

答案 1 :(得分:2)

本教程可能对您有所帮助。

iAd integration in iPhone

您还可以从iTunes下载免费的2010 WWDC视频,并查看有关将iAd集成到您的应用中的会话112。