Сдвиньте AdView, когда объявление получено - PullRequest
1 голос
/ 12 ноября 2011

У меня есть контроллер навигации с видом и панель навигации. Я хочу вставить AdView (я использую AdWhirl) между панелью навигации и видом. AdView должен сдвинуться вниз и сдвинуть вид вниз (вид должен изменить свой размер, не выходя за пределы экрана).

Я работаю с Three20, если это имеет значение.

Есть идеи?

Спасибо!

1 Ответ

3 голосов
/ 14 ноября 2011

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

Таким образом, в adWhirlDidReceiveAd: вы хотите скользить вниз по своему контенту (это представление в вашем контроллере навигации) и вставлять полученное объявление.

- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView_ {


  CGSize adSize = [adWhirlView_ actualAdSize];
  CGRect newFrame = adWhirlView_.frame;

  newFrame.size = adSize;
  newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/ 2;

  //Draw offscreen so that it can slide in properly
  CGRect tempFrame = newFrame;
  tempFrame.origin.y = -newFrame.size.height;
  adWhirlView_.frame = tempFrame;

  [UIView animateWithDuration:1.0 animations:^{
       //Access frame of view controller in nav controller 
       CGRect viewFrame = [self.navigationController topViewController].view.frame;

       // Decrease the height of the view by the height of the adwhirlView
       viewFrame.size.height = [self.navigationController topViewController].view.frame.size.height -
                        adwhirlView_.frame.size.height;
       // Shift view down to make room for the ad
       viewFrame.origin.y = adwhirlView_.frame.size.height;

       [self.navigationController topViewController].view.frame = viewFrame;

       //Slide down the ad
       adwhirlView_.frame = frame;

  }];

}

Вы, вероятно, хотите проверить, уже появилось ли первое объявление, поэтому вы не выполняете слайд-переход каждый раз, когда появляется объявление.

Я почти уверен, что вы могли бы почистить код. У меня там тоже много всего, просто хотел, чтобы мои мысли были опущены, пока я мог.

...