0

画面の下部に ADBannerView の IBOutlet があり、白い画面 (広告を読み込めない) が表示されている場合は非表示にしません。

私はこのコードを持っていますが、機能していません:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    [UIView beginAnimations:@"showAd" context:nil];

    CGRect adBannerViewFrame = [bannerView frame];
    adBannerViewFrame.origin.x = 160;
    adBannerViewFrame.origin.y = 523;

    bannerView.frame = adBannerViewFrame;

    [UIView commitAnimations];
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    [UIView beginAnimations:@"hideAd" context:nil];

    CGRect adBannerViewFrame = [bannerView frame];
    adBannerViewFrame.origin.x = 0;
    adBannerViewFrame.origin.y = 0;

    bannerView.frame = adBannerViewFrame;

    [UIView commitAnimations];
}

助けてください、私は過去2時間苦労しています... :/

4

1 に答える 1

0

このようなことを試してみてください(これはライブプロジェクトからのものです)。iAd バナーは画面の下部にあり、非表示になると下に下がり、表示する必要があるときに元に戻ります。

これ_isiADBannerVisibleは単純なBoolean変数です。

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
    if (_isiADBannerVisible == false) {
         _isiADBannerVisible = true;

         [UIView animateWithDuration:0.5f delay:0.f options:UIViewAnimationCurveEaseInOut animations:^{
             [banner setFrame:CGRectOffset(banner.frame, 0.f, -50.f)];
         } completion:nil];
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
    if (_isiADBannerVisible == true) {
         _isiADBannerVisible = false;

         [UIView animateWithDuration:0.5f delay:0.f options:UIViewAnimationCurveEaseInOut animations:^{
             [banner setFrame:CGRectOffset(banner.frame, 0.f, +50.f)];
         } completion:nil];

    }
}
于 2012-10-23T10:03:07.147 に答える