0

这可能是非常基本的事情。我正在尝试将 AdWhirl 实施到我的应用程序中,我已经成功地完成了技术部分。当我加载我的应用程序时,添加加载然后从顶部向下滑动到屏幕底部。但是,当我旋转设备时,广告会使用“精确”位置并移出屏幕。当广告重新加载(每 15 秒刷新一次)时,广告会向上移动到横向窗口屏幕的底部。同样,当从横向旋转回来时,广告会在页面中间垂直对齐(覆盖内容),直到加载新广告。我附上了一系列照片,展示了发生的事情,所有照片都按顺序拍摄,间隔至少 10 秒(显示“你好”的测试广告)。

我的实现文件中的代码包含在这篇文章的末尾 - 很抱歉没有使用代码格式,只是不想在整个块前面放空格,我认为这都是相对相关的。它也可以在粘贴箱中找到:http: //pastebin.com/mzavbj2L

山姆

对不起 - 它不会让我上传图片。请发给我图片的PM。

4

2 回答 2

0

我建议在willRotateToInterfaceOrientation:duration:方法或didRotateFromInterfaceOrientation:method. 您将能够确定您的新方向、视图的新大小,然后将 AdWhirl 视图的框架更改为新位置。

然而,仔细观察后,您可能需要*adView在文件中声明一个变量,.h以便您可以从旋转方法访问它。

完成后,您可以像在viewDidLoad: method:

CGSize adSize = [adView actualAdSize];
CGRect newFrame = adView.frame;
newFrame.size = adSize;
newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/ 2;
newFrame.origin.y = (self.view.bounds.size.height - adSize.height);
adView.frame = newFrame;
[UIView commitAnimations];

理想情况下,您应该将此代码移动到它自己的方法中,这样您就可以从视图控制器代码中的任何位置调用它(例如viewDidLoad,旋转函数)。

于 2011-10-19T16:20:08.597 回答
0

感谢您的帮助 - 它接近解决方案(今晚才开始工作 - 几乎忘记了这样做!)。在我对我的 .h 进行更改后,我试图调用[adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]. 即使它是在 AdWhirlView 类中定义的,它也会不断返回错误。作为修复,我添加-(void) adWhirlDidReceiveAd:(AdWhirlView *)adView并在每次框架旋转时调用[self adWhirlDidReceiveAd:(AdWhirlView *)adView];

再次感谢 - 很高兴它终于奏效了。

山姆

于 2012-01-17T18:42:46.907 回答