Как использовать несколько баннеров iAd в одном представлении (iPhone / iPad) - PullRequest
1 голос
/ 21 октября 2011

Я пытаюсь настроить отображение нескольких баннеров iAd в одном представлении (один в верхней части экрана чуть ниже навигационной панели, а другой - в самой нижней части экрана).Однако у меня есть проблема с перемещением их на экран.

Я полагаю, это связано с тем, что метод делегата не знает, какой баннер следует переместить, однако я не уверен, как решить проблему.Вот код, который я использую в настоящее время:

- (void)createIAdBanner
{
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    adView.frame = CGRectOffset(adView.frame, 0, -50);
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

    adViewTwo = [[ADBannerView alloc] initWithFrame:CGRectZero];
    adViewTwo.frame = CGRectOffset(adView.frame, 0, 530);
    adViewTwo.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
    adViewTwo.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

    [self.view addSubview:adView];
    [self.view addSubview:adViewTwo];

    adView.delegate=self;
    adViewTwo.delegate=self;

    self.bannerIsVisible=NO;
    self.bannerTwoIsVisible=NO;
}


- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, 94);
        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }

    if (!self.bannerTwoIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, 430);
        [UIView commitAnimations];
        self.bannerTwoIsVisible = YES;
    }
}


- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, -50);
        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    }

    if (self.bannerTwoIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, 530);
        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    }
}

1 Ответ

1 голос
/ 21 октября 2011

В методах делегата вы можете проверить, о каком баннере идет речь, простым сравнением:

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (banner == adView) {
        // do something with banner 1
    }
    else if (banner == adViewTwo) {
        // do something with banner 2
    }
}
...