iOS возвращает альбомную ориентацию, когда это Портрет - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь контролировать размер 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 ]

1 голос
/ 20 февраля 2012

Вы почти всегда хотите использовать [self interfaceOrientation] здесь.

Относительно того, почему orientation не работает, обратите внимание документы :

Значение этого свойства всегда возвращает 0, если уведомления об ориентации не были включены путем вызова beginGeneratingDeviceOrientationNotifications.

0 голосов
/ 20 февраля 2012

Вы уверены, что он говорит вам, что он находится на суше или просто не Портрет, как если бы вы настроены на распознавание только Портрета.Возможно, что симулятор возвращает ноль, как упомянуто в этой теме: UIDevice currentDevice «ориентация» всегда нулевая Вы используете симулятор или устройство?

...