这可能是非常基本的东西。我正在尝试将AdWhirl实施到我的应用程序中,我已经成功完成了技术部分。当我加载我的应用程序时,添加加载,然后从顶部向下滑动以位于屏幕的底部。但是,当我旋转设备时,广告使用“精确”位置并移出屏幕。当广告重新加载(每15秒刷新一次)时,广告会向上移动到横向窗口的屏幕底部。同样,当从横向旋转回来时,广告会在页面中间垂直对齐(覆盖内容),直到新广告加载为止。我附上了一系列照片,一系列显示发生了什么,按顺序排列并至少间隔10秒(显示“你好”的测试广告)。
来自实施文件的代码包含在本文末尾 - 抱歉不使用代码格式,只是不想在整个块前放置空格,我认为这些都是相对相关的。它也可以在粘贴箱中使用:http://pastebin.com/mzavbj2L
萨姆
抱歉 - 它不允许我上传图片。请寄给我一张图片。
答案 0 :(得分: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
和旋转函数)。
答案 1 :(得分:0)
感谢您的帮助 - 它接近于一个解决方案(只是让它今晚正常工作 - 大部分都忘记了这样做!)。在我改变了我的.h之后,我试图打电话给[adWhirlView adWhirlDidReceiveAd:(AdWhirlView *)adView]
。这会导致返回错误,即使它是在AdWhirlView类中定义的。作为修复,我添加了-(void) adWhirlDidReceiveAd:(AdWhirlView *)adView
,然后每次框架旋转[self adWhirlDidReceiveAd:(AdWhirlView *)adView];
时调用。
再次感谢 - 很高兴它终于工作了。
萨姆