收到广告时向下滑动AdView

时间:2011-11-12 14:33:43

标签: ios three20 adwhirl

我有一个带视图和导航栏的导航控制器。 我想在导航栏和视图之间插入AdView(我正在使用AdWhirl)。 AdView应向下滑动并向下推视图(视图必须自行调整大小,而不是在屏幕外显示)。

如果这很重要,我正在与Three20合作。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我对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;

  }];

}

您可能想要检查第一个广告是否已经进入,因此每次广告进入时都不会进行幻灯片切换。

我很确定你可以清理代码我也有很多,只是想尽可能地把我的想法放下来。