当Portrait是时,iOS返回横向

时间:2012-02-20 18:25:33

标签: objective-c ios xcode cocoa-touch iad

我正在尝试从横向或纵向开始控制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];
}

2 个答案:

答案 0 :(得分:1)

您几乎总是想在这里使用[self interfaceOrientation]

关于orientation无效的原因,请注意the docs

  

除非通过调用beginGeneratingDeviceOrientationNotifications启用了方向通知,否则此属性的值始终返回0。

答案 1 :(得分:0)

你确定它告诉你它是在LANDpace上,还是只是没有Portrait,因为你设置的只是识别Portrait。模拟器可能返回nil,如本主题所述:UIDevice currentDevice's "orientation" always null 您使用的是模拟器还是设备?