3

私は多くの異なる質問を経験しましたが、何らかの理由で、iPadにロード時の向きを検出させることができません。

これを行う最良の方法は、statusBarOrientationを検出することです。

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"View Loads");

    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft
        || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) {
        NSLog(@"This is Landscape"); 
    } else {
        NSLog(@"This is Portrait"); 
    }
}

ただし、常に「ポートレート」を返します。.plistで4つの方向すべてを使用でき、shouldAutorotateToInterfaceOrientationも設定されています。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
                interfaceOrientation == UIInterfaceOrientationLandscapeRight || 
                interfaceOrientation == UIInterfaceOrientationPortrait);        
        } else {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
}

他に何かアドバイスはありますか?前もって感謝します!

4

1 に答える 1

4

iPadアプリは、実際のデバイスの向きに関係なく、常に縦向きモードで起動します(デバイスがオンになっている場合は、すぐに横向きに回転します)。プログラムライフサイクルの後半で同じコードを使用してステータスバーの向きを確認すると、実際の向きが返されることがわかります。

于 2012-04-05T23:52:36.563 に答える