我可能是我,但我正在努力连续两天让iAd框架在我正在进行的项目中使用cocos2d。
我有搜索google,stackoverflow和cocos2d论坛但没有运气。 我已经从stackoverflow站点和其他资源下载并尝试了很多示例。 当我将代码与我当前的项目结合起来时,它无法正常工作。 不满意的结果差别很大,可能会让其他人感到困惑,这就是为什么我还没有用这个请求发布代码。无论如何,代码也可以在stackoverflow网站上找到,我已经包含了一些我尝试过的链接。 有一刻我非常接近解决方案,但特定的迁移搞砸了AppDelegate方法。 AppDelegate方法有2个@interface部分。我试图解决这个问题,但无法弄清楚如何解决它并重新开始从之前的备份中再次面对问题。
谁能帮助我,用一些示例代码将我推向正确的方向。
下面是我准备尝试的一些东西/链接:
http://www.highoncoding.com/Articles/751_Implementing_iAd_on_Cocos2d_Application.aspx (太旧了)
iAd ADBannerView detect unloading
https://www.youtube.com/watch?v=fP2ijcXbCz4
提前致谢
下面的代码是最接近屏幕底部的蓝色横幅的东西。这不是我自己的,评论不是我的。
-(id) init
{
if( (self=[super init])) {
UIViewController *controller = [[UIViewController alloc] init];
controller.view.frame = CGRectMake(0, size.height -32, 320, 32);
ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierLandscape];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
[controller.view addSubview:adView];
adView.delegate = self;
[[[CCDirector sharedDirector] view] addSubview:controller.view];
[[[CCDirector sharedDirector] view] setNeedsLayout];
}
[self layoutAnimated:YES];
}
- (void)layoutAnimated:(BOOL)animated
{
// As of iOS 6.0, the banner will automatically resize itself based on its width.
// To support iOS 5.0 however, we continue to set the currentContentSizeIdentifier appropriately.
CGRect contentFrame = [CCDirector sharedDirector].view.bounds;
if (contentFrame.size.width < contentFrame.size.height) {
//_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
[adView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
} else {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
}
CGRect bannerFrame = _bannerView.frame;
if (_bannerView.bannerLoaded) {
contentFrame.size.height -= _bannerView.frame.size.height;
bannerFrame.origin.y = contentFrame.size.height;
} else {
bannerFrame.origin.y = contentFrame.size.height;
}
[UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{
_bannerView.frame = bannerFrame;
}];
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!bannerIsVisible)
{
NSLog(@"bannerViewDidLoadAd");
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, -32); //the offending line
self.position = ccpAdd(ccp(0, 32), self.position);
[UIView commitAnimations];
bannerIsVisible = YES;
}
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (bannerIsVisible)
{
NSLog(@"bannerView:didFailToReceiveAdWithError:");
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 32); //the other offending line
self.position = ccpAdd(ccp(0, -32), self.position);
[UIView commitAnimations];
bannerIsVisible = NO;
}
}
答案 0 :(得分:0)
确实是我。 如果您使用的是cocos2d v2,ios7并且您想要实现iAds,请使用以下链接。 这将为您提供您想要的解决方案。 使用MyiAd类检查HelloWorldLayer.h和.m文件,这很容易(像往常一样)。
不要尝试别的,因为我已经为你做了。
https://github.com/gururajios/Cocos2d-iAd
希望此评论能帮助其他访问者找到比我更快的解决方案!
此致