我正在尝试从横向或纵向开始控制iAd尺寸。问题是设备在纵向时告诉它是在风景上!怎么处理?谢谢
- (void)viewDidLoad
{
//iAd
adView =[[ADBannerView alloc] initWithFrame:CGRectZero];
adView.requiredContentSizeIdentifiers = [NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil];
adView.delegate = self;
if (UIInterfaceOrientationIsPortrait([UIDevice currentDevice].orientation)) {
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
} else {
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
}
[self.view addSubview:adView];
[super viewDidLoad];
}
答案 0 :(得分:1)
您几乎总是想在这里使用[self interfaceOrientation]
。
关于orientation
无效的原因,请注意the docs:
除非通过调用
beginGeneratingDeviceOrientationNotifications
启用了方向通知,否则此属性的值始终返回0。
答案 1 :(得分:0)
你确定它告诉你它是在LANDpace上,还是只是没有Portrait,因为你设置的只是识别Portrait。模拟器可能返回nil,如本主题所述:UIDevice currentDevice's "orientation" always null 您使用的是模拟器还是设备?