Ios5 Admob横幅在ipad/iphone中的位置不正确

Ios5 Admob横幅在ipad/iphone中的位置不正确,ios5,cocos2d-iphone,objective-c-2.0,Ios5,Cocos2d Iphone,Objective C 2.0,我已经在我的2d游戏中实现了admob,我正在使用cocos2d开发这个游戏,任何人都可以帮我设置admob横幅的位置,我有一个处于纵向状态的通用游戏,我想在设备底部显示横幅,当我从一个视图导航到另一个视图时,横幅将被移除,目前它没有被移除。 这是我的密码: -(void)onEnter { [super onEnter]; #ifdef ENABLE_ADMOB // AppDelegate *app=(AppDelegate*)[[UIApplication sha

我已经在我的2d游戏中实现了admob,我正在使用cocos2d开发这个游戏,任何人都可以帮我设置admob横幅的位置,我有一个处于纵向状态的通用游戏,我想在设备底部显示横幅,当我从一个视图导航到另一个视图时,横幅将被移除,目前它没有被移除。 这是我的密码:

-(void)onEnter
{
    [super onEnter];

     #ifdef ENABLE_ADMOB
   // AppDelegate *app=(AppDelegate*)[[UIApplication sharedApplication]delegate];

    viewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate] viewController];

    // AppController *app =  (AppController*)[[UIApplication sharedApplication]   delegate];    
    // Create a view of the standard size at the bottom of the screen.
    // Available AdSize constants are explained in GADAdSize.h.


     mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];

    // Specify the ad's "unit identifier." This is your AdMob Publisher ID.



    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    {
        mBannerView.adUnitID =@"a15062384653c9e"; 
    } 
    else
    {
        mBannerView.adUnitID =@"a15062392a0aa0a"; 
    }


    // Let the runtime know which UIViewController to restore after taking
    // the user wherever the ad goes and add it to the view hierarchy.


    //size

    mBannerView.rootViewController = viewController;
    [viewController.view addSubview:mBannerView];

    // Initiate a generic request to load it with an ad.
    [mBannerView loadRequest:[GADRequest request]];

     CGRect frame = mBannerView.frame;

    frame.origin.y = (viewController.view.bounds.size.height) ;

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    {
        CGSize AdSize = kGADAdSizeLeaderboard.size;

        frame.origin.y = 950; 
    } 
    else
    {
        CGSize AdSize = kGADAdSizeBanner.size;

        frame.origin.y = 430;
    }

    mBannerView.frame = frame;

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    frame = mBannerView.frame;
    frame.origin.y = 430;

    mBannerView.frame = frame;
    [UIView commitAnimations];    

    #endif
}

-(void)showBannerView
 {
    if (mBannerView) 
    {
        [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
     {
         CGRect frame = mBannerView.frame;
         frame.origin.x = 0;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
     }];
}

}

  -(void)hideBannerView
  {
      if (mBannerView) 
       {
           [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
     {
         CGRect frame = mBannerView.frame;
         frame.origin.y = -50.0f;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
     }];
}

 }


 -(void)dismissAdView
  {
     #ifdef ENABLE_ADMOB
     if (mBannerView) 
     {
         [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
         {
         CGRect frame = mBannerView.frame;
         frame.origin.y = -50.0f;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
         [mBannerView setDelegate:nil];
         [mBannerView removeFromSuperview];
         mBannerView = nil;

     }];

  }
 #endif  

 }

我得到了解决方案和位置,如果有人想在游戏中使用admob,他可以使用此代码,谢谢@raj,他帮了我很多

`

  -(void)onEnter
  {
  [super onEnter];

  #ifdef ENABLE_ADMOB
  // AppDelegate *app=(AppDelegate*)[[UIApplication sharedApplication]delegate];

   viewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate]  viewController];

// AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate];    
// Create a view of the standard size at the bottom of the screen.
// Available AdSize constants are explained in GADAdSize.h.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{
 mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeLeaderboard];
}
else {
    mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
}

// Specify the ad's "unit identifier." This is your AdMob Publisher ID.



if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{
    mBannerView.adUnitID =@"a15062384653c9e"; 
} 
else
{
    mBannerView.adUnitID =@"a15062392a0aa0a"; 
}


// Let the runtime know which UIViewController to restore after taking
// the user wherever the ad goes and add it to the view hierarchy.


//size



mBannerView.rootViewController = viewController;
[viewController.view addSubview:mBannerView];


// Initiate a generic request to load it with an ad.
[mBannerView loadRequest:[GADRequest request]];



   CGRect frame = mBannerView.frame;

//  frame.origin.y = (viewController.view.bounds.size.height) ;



if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{

   frame = mBannerView.frame;
    frame.origin.y = 950; 
    frame.origin.x = 20;
} 
else
{

   frame = mBannerView.frame;
    frame.origin.y = 430;
    frame.origin.x = 0;
}






 mBannerView.frame = frame;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];



mBannerView.frame = frame;
[UIView commitAnimations];    

#endif


 }


 -(void)showBannerView
  {
   if (mBannerView) 
  {
    [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
     {
         CGRect frame = mBannerView.frame;
         frame.origin.x = 0;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
     }];
   }

 }


 -(void)hideBannerView
{
  if (mBannerView) 
   {
    [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
     {
         CGRect frame = mBannerView.frame;
         frame.origin.y = -50.0f;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
     }];
  }

 }


 -(void)dismissAdView
{
 #ifdef ENABLE_ADMOB
if (mBannerView) 
{
    [UIView animateWithDuration:0.5
                          delay:0.1
                        options: UIViewAnimationCurveEaseOut
                     animations:^
     {
         CGRect frame = mBannerView.frame;
         frame.origin.y = -50.0f;
         mBannerView.frame = frame;
     } 
                     completion:^(BOOL finished)
     {
         [mBannerView setDelegate:nil];
         [mBannerView removeFromSuperview];
         mBannerView = nil;

     }];

 }
  #endif  

}

`以下是我在iPhone游戏中使用Admob横幅的一般代码

#import "GADBannerView.h"

typedef enum _bannerType
{
    kBanner_Portrait_Top,
    kBanner_Portrait_Bottom,
    kBanner_Landscape_Top,
    kBanner_Landscape_Bottom,
}CocosBannerType;

#define BANNER_TYPE  kBanner_Landscape_Bottom //change this on need basis

@interface MyMainMenu : CCLayer
{
    GADBannerView *mBannerView;
    CocosBannerType mBannerType;
    float on_x, on_y, off_x, off_y;
}

@implementation MyMainMenu


-(void)onEnter
{
    [super onEnter];
    [self createAdmobAds];
}

-(void)onExit 
{
    [self dismissAdView];
    [super onExit];
}

-(void)createAdmobAds
 {
    mBannerType = BANNER_TYPE;

    AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate];
    // Create a view of the standard size at the bottom of the screen.
    // Available AdSize constants are explained in GADAdSize.h.

    if(mBannerType <= kBanner_Portrait_Bottom)
        mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerPortrait];
    else
        mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerLandscape];

    // Specify the ad's "unit identifier." This is your AdMob Publisher ID.
    mBannerView.adUnitID = MY_BANNER_UNIT_ID;

    // Let the runtime know which UIViewController to restore after taking
    // the user wherever the ad goes and add it to the view hierarchy.

    mBannerView.rootViewController = app.navController;
    [app.navController.view addSubview:mBannerView];

    // Initiate a generic request to load it with an ad.
    [mBannerView loadRequest:[GADRequest request]];

    CGSize s = [[CCDirector sharedDirector] winSize];

    CGRect frame = mBannerView.frame;

    off_x = 0.0f;
    on_x = 0.0f;

    switch (mBannerType)
    {
        case kBanner_Portrait_Top:
        {
            off_y = -frame.size.height;
            on_y = 0.0f;
        }
            break;
        case kBanner_Portrait_Bottom:
        {
            off_y = s.height;
            on_y = s.height-frame.size.height;
        }
            break;
        case kBanner_Landscape_Top:
        {
            off_y = -frame.size.height;
            on_y = 0.0f;
        }
            break;
        case kBanner_Landscape_Bottom:
        {
            off_y = s.height;
            on_y = s.height-frame.size.height;
        }
            break;

        default:
            break;
    }

    frame.origin.y = off_y;
    frame.origin.x = off_x;

    mBannerView.frame = frame;

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    frame = mBannerView.frame;
    frame.origin.x = on_x;
    frame.origin.y = on_y;


    mBannerView.frame = frame;
    [UIView commitAnimations];
}


-(void)showBannerView
{
    if (mBannerView)
    {
        [UIView animateWithDuration:0.5
                              delay:0.1
                            options: UIViewAnimationCurveEaseOut
                         animations:^
         {
             CGRect frame = mBannerView.frame;
             frame.origin.y = on_y;
             frame.origin.x = on_x;

             mBannerView.frame = frame;
         }
                         completion:^(BOOL finished)
         {
         }];
    }

}


-(void)hideBannerView
 {
    if (mBannerView)
    {
        [UIView animateWithDuration:0.5
                              delay:0.1
                            options: UIViewAnimationCurveEaseOut
                         animations:^
         {
             CGRect frame = mBannerView.frame;
             frame.origin.y = off_y;
             frame.origin.x = off_x;
         }
                         completion:^(BOOL finished)
         {
         }];
    }

}

-(void)dismissAdView
 {
    if (mBannerView) 
    {
        [UIView animateWithDuration:0.5
                              delay:0.1
                            options: UIViewAnimationCurveEaseOut
                         animations:^
         { 
             CGRect frame = mBannerView.frame;
             frame.origin.y = off_y;
             frame.origin.x = off_x;
             mBannerView.frame = frame;
         } 
                         completion:^(BOOL finished)
         {
             [mBannerView setDelegate:nil];
             [mBannerView removeFromSuperview];
             mBannerView = nil;

         }];
    }
}
#导入“gadbanerview.h”
typedef枚举_bannerType
{
kBanner_肖像_顶部,
kBanner_纵向_底部,
kBanner_横向_顶部,
kBanner_横向_底部,
}CocosBannerType;
#定义横幅\u类型kBanner\u横向\u底部//根据需要更改此设置
@界面MyMain菜单:CCLayer
{
GADBannerView*mBannerView;
CocosBannerType-mBannerType;
浮动在x上、y上、x下、y下;
}
@实现MyMain菜单
-(void)onEnter
{
[超级合一];
[自创AdMobads];
}
-(无效)onExit
{
[自我否定];
[超级脱欧];
}
-(void)createAdmobAds
{
mBannerType=横幅类型;
AppController*app=(AppController*)[[UIApplication sharedApplication]委托];
//在屏幕底部创建标准尺寸的视图。
//可用的AdSize常量在gadaSize.h中进行了解释。
if(mBannerType)