未加载时iAd in iPhone动画

时间:2010-10-08 06:16:17

标签: iphone iad

我添加了横幅视图,用于在屏幕底部实现iAd。但是当在模拟器上运行时,横幅视图略高于为其固定的框架。它显示为透明条带,不可选择。一段时间后,它会自动显示在底部,作为一个黑色条带,上面写着Test Advertisement。

我希望横幅视图固定在底部而不是动画。

这是我的代码。 adView声明代码:

adView = [[[ADBannerView alloc] initWithFrame:CGRectOffset(CGRectZero, 0, 350)] autorelease];
adView.frame = CGRectMake(0,340,320,25);
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
adView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin;
adView.tag = 111;
[self.navigationController.view addSubview:adView];
adView.delegate = self;
self.bannerIsVisible = NO;
adView.hidden = YES;

以下是委托方法。

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!self.bannerIsVisible)  {

        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];

        // banner is invisible now and moved out of the screen on 50 px
        banner.frame = CGRectOffset(banner.frame, 0, 50);
        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }
}

// When iAd is not availale on the banner
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (self.bannerIsVisible) {

        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];        
        // banner is visible and we move it out of the screen, due to connection issue
        banner.frame = CGRectOffset(banner.frame, 0, 520);
        [UIView commitAnimations];      
        self.bannerIsVisible = NO;
    }
}

我无法理解这个问题。请帮助。

1 个答案:

答案 0 :(得分:0)

<强>首先 加载主视图时,最初如何放置对象?我总是将它们放在viewDidLoad方法中的正确位置。因此,请将横幅放在主视图底部下方,确保

myBannerFrame.origin.x = 0;
myBannerFrame.origin.y = mainView.frame.size.height;
[myBanner setFrame:myBannerFrame]; // no need for animation here! 

同样viewDidLoad是将您的旗帜self.bannerIsVisible设置为FALSE的好地方。

秒。请勿使用此处的固定像素值

banner.frame = CGRectOffset(banner.frame, 0, 50);

而不是50你最好放banner.frame.size.height 这有助于您避免许多错误和错位。