2012-03-22 7 views
2

私のiPhoneアプリにiAdを追加しました。もともと私はそれをx = 0とy = -50に置き、画面外から来るようにしました。xcode 4.3 - storyboard - iAdは動いています

- (void)bannerView:(ADBannerView *)abanner didFailToReceiveAdWithError:(NSError *)error 
{ 
    if (self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     // Assumes the banner view is placed at the bottom of the screen. 
     banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

- (void)bannerViewDidLoadAd:(ADBannerView *)abanner 
{ 
    if (!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
     // Assumes the banner view is just off the bottom of the screen. 
     banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = YES; 
    } 
} 

私のアプリの起動時にiAdが問題なく表示されると、次のコードが表示されます。しかし、私は別のアプリを開いてそれに戻ってくる(私のアプリがバックグラウンドで実行されるようにそれを殺さずに)バナーは別の50ピクセル下に移動するenter image description here

何か考えている?

答えて

2

どちらの場合も、にbanner.frame.origin.yを追加しています。とにかく

:あなたはdidFailToReceiveAdWithError:50.pxをsubstractingているはずだ場合でも、それは がdidFailToReceiveAdWithError:が 行に複数回呼び出さなるだろうし、あなたのコードは(-50.0、-100.0、アップますます高くバナーを動かすことができることが起こる可能性 - 150.0 ...)。

したがって、非表示の位置を計算する代わりに、&の表示位置にハードコードする方が良いです。

はこれを試してみてください:

- (void)bannerView:(ADBannerView *)abanner didFailToReceiveAdWithError:(NSError *)error 
{ 
    if (self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     banner.frame = CGRectMake(0.0,-50.0,banner.frame.size.width,banner.frame.size.height); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

- (void)bannerViewDidLoadAd:(ADBannerView *)abanner 
{ 
    if (!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
     banner.frame = CGRectMake(0.0,0.0,banner.frame.size.width,banner.frame.size.height); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = YES; 
    } 
} 
+0

全く広告がない場合、それは白抜きのバーを残しハードコーディング。だから私は最初に画面から外してから、表示する広告があるときにそれを動かします。 – Adeeb

+0

私はそれがオフであり、それが定位置にあることを意味します - それを固定場所に置かないでください。あなたは提案されたコードを試しましたか? –

+0

優秀!!ありがとう – Adeeb

関連する問題