2015-01-03 6 views
1

Я искал и обыскал и сделал много проб и ошибок в этом коде, пытаясь переместить рекламный баннер в верхнюю часть экрана. Прошла неделя уже без прогресса. Если бы кто-нибудь мог помочь мне в этом вопросе, я был бы в восторге. Код это базируется прочь является джентльменским большим учебником: http://codewithchris.com/iad-tutorial/Невозможно переместить iAd баннер в верхнюю часть экрана с помощью этого кода

Вот код:

@interface ViewController() 
{ 
BOOL _bannerIsVisible; 
ADBannerView *_adBanner; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
[super viewDidAppear:animated]; 

_adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, 320, 50)]; 
_adBanner.delegate = self; 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

- (void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
    if (!_bannerIsVisible) 
    { 
    // If banner isn't part of view hierarchy, add it 
    if (_adBanner.superview == nil) 
    { 
     [self.view addSubview:_adBanner]; 
    } 

     [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]; 

     _bannerIsVisible = YES; 
    } 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    NSLog(@"Failed to retrieve ad"); 

if (_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]; 

     _bannerIsVisible = NO; 
    } 
} 

@end 

ответ

0

Изменить эту строку:

_adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, 320, 50)]; 

Для этого:

_adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, -50, 320, 50)]; 

(где -50 - высота рекламного баннера.) Прежде чем вы установили g рамка рекламного баннера в нижней части экрана, используя self.view.frame.size.height, тогда как теперь -50 перемещает рамку чуть выше экрана.

Кроме того, не забудьте, что вам нужно будет отменить координаты CGRectOffsets (удалите (-) из первого и добавьте его ко второму), потому что те, которые у вас есть на данный момент, предполагают, что кадр находится на в нижней части экрана.

Надеюсь, это поможет!