0

デバイスのインターフェイスの向きを確認する正しい方法は何ですか? 現在アクティブなView Controllerのステータスバーの向きまたは向きのプロパティを確認する必要がありますか?

また、誰かが、上向きや下向きなどのデバイスの向きが役立つシナリオを説明してもらえますか?

4

3 に答える 3

1

ユーザーがインターフェイスをどのように見ているのかを知りたい場合は、インターフェイスの向きを使用してください。どちらの方法でもいいと思います。

物理デバイスがどの方向に配置されているかを知りたい場合は、デバイスの向きを使用します。

インターフェイスの向きはデバイスの向きとは異なることに注意してください (したがって、「デバイスのインターフェイスの向き」などというものはありません)。

デバイスの向きは、フラット アップ/フラット ダウンにすることができます (インターフェイスは、縦向き/逆さま向き/横向きの右向き/左向きのみ)。デバイスが回転しているがインターフェイスが一定に設定されている場合、デバイスの向きも異なる可能性があります。さらに、横向きは逆になります。

フェイスアップ/ダウンがいつ役立つかはわかりません。

実際のメソッドが必要な場合に備えて、これを使用してView Controllerからインターフェイスの向きを確認できます。

UIInterfaceOrientation orientation = self.interfaceOrientation;

または、これを使用してアプリ内の任意のクラスから (ステータス バー チェック):

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

次のようにデバイスの向きを取得します。

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
于 2012-09-27T12:00:45.833 に答える
1

コードが方向を入力とするメソッドの外側にある場合は、次を使用します。

[[UIApplication sharedApplication] statusBarOrientation]

いくつかのアプリでそれを使用していますが、問題は発生していないようです... :D

UIInterfaceOrientationPortraitさらに、ホームボタンが画面の向きに関連している場合を除いて、との間に大きな違いはありませんUIInterfaceOrientationPortraitUpsideDown(逆さまはまあ...逆さまです...)。

一部の開発者はUIInterfaceOrientationPortraitUpsideDown、ホーム ボタンを上にしてデバイスを保持するのがぎこちないように見えるという理由だけで、このモードをサポートしないことを選択しますが、必要に応じて実装およびサポートすることを選択できます (すべてのアプリでサポートされています)。

これに可能な値とそれぞれの説明の詳細は次のとおりです。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/c/tdef/UIInterfaceOrientation

編集:

ただし、廃止されたため、iOS 6 では UIViewController の動作方法がいくつか変更されshouldAutorotateToInterfaceOrientationていることに注意してください。この投稿を参照してください。

iOS 6 で UIViewController を強制的に縦向きにする方法

詳細については、UIViewController に関する Apple ドキュメントも参照してください。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation :

于 2012-09-27T11:49:26.780 に答える
1

以下のコードを使用できます。

これがあなたを助けますように。

if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {     
       //  Orientation is   Portrait   
    }       
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) 
    {       
       // Orientation is Landscape        
    }
于 2012-09-27T12:12:37.033 に答える