iAd в iPhone оживляет, когда не загружен - PullRequest
0 голосов
/ 08 октября 2010

Я добавил вид баннера для реализации iAd в нижней части экрана.Но при работе на симуляторе вид баннера чуть выше фиксированной для него рамки.Он выглядит как прозрачная полоса и недоступен для выбора.Через некоторое время он автоматически опускается на дно в виде черной полосы с надписью «Тестирование рекламы».

Я хочу, чтобы баннер «Вид» придерживался снизу и не анимировался.Код объявления 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 голосов
/ 08 октября 2010

First. Когда основной вид загружается, как объекты помещаются в него изначально? Я всегда помещаю их в правильные позиции в методе 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 Это поможет вам избежать многих ошибок и смещений.

...