我试图旋转AdWhirl横幅视图。 AdWhirl提供的唯一文档是:
6.2设备方向 某些广告网络(包括iAd)会因设备方向而改变广告尺寸。 如果您的应用程序支持旋转,您必须通过调用AdWhirlView.rotateToOrientation将方向更改转发到AdWhirlView:在您的UIViewController的should / willAutorotateToInterfaceOrientation:实现中,然后按照6.1进行重新调整。 如果您的应用程序的方向概念与UIDevice.orientation有所不同,您还必须实现AdWhirlDelegate.adWhirlCurrentOrientation以返回适当的值。
我正在尝试解决这个问题,到目前为止正确实施了adWhirlDidReceiveAd方法,但我无法正确调整和/或调整相关广告的大小。
答案 0 :(得分:1)
在视图底部设置AdWhirl:here
滚动时将广告设为静态(即TableView):here
这是我使用AdWhirl旋转广告的方式(可能不是最佳解决方案......):
awView.transform = CGAffineTransformIdentity;
awView.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
awView.bounds = CGRectMake(0.0, 0.0, 480, 320);
您需要根据视图更改坐标。
答案 1 :(得分:1)
[AdWhirlView rotateToOrientation]为每个当前网络适配器调用rotateToOrientation
方法。
但是,某些网络适配器不会覆盖此方法。此方法的默认实现不执行任何操作。
因此,您需要覆盖rotateToOrientation方法。
接下来是AdMob网络适配器的示例实现。
AdWhirlAdapterGoogleAdMobAds.m
-(void)rotateToOrientation:(UIInterfaceOrientation)orientation {
GADBannerView* adMobView;
adMobView = (GADBannerView*)adNetworkView;
switch (orientation) {
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
adMobView.adSize = kGADAdSizeSmartBannerPortrait;
break;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
adMobView.adSize = kGADAdSizeSmartBannerLandscape;
break;
default:
break;
}
}
答案 2 :(得分:0)
在你的UIViewController实现中,添加shouldAutorotateToInterfaceOrientation:如下所示:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
if (interfaceOrientation is supported)
{
[adWhirlView_ rotateToOrientation:interfaceOrientation];
return YES;
}
else
{
return NO;
}
}
请注意,只要isAutorotateToInterfaceOrientation:实现,AdWhirlView将与其余布局一起旋转。但是,调用rotateToOrientation:会告诉AdWhirlView向广告转发方向更改信号,以便单个广告网络可以根据需要优化横向广告。