2011-07-27 15 views
3

UIDeviceOrientation & UIInterfaceOrientationの違いは何ですか?iPhone - 画面回転?

UIViewで回転を検出するのに、どちらを使用しますか?

答えて

8

UIDeviceOrientationを参照することはあなたの物理デバイス自体に関する情報を提供します。これらは一致する必要はありません。ユーザーが方向ロックを使用しているとき、またはデバイスの向きが上を向いているとき。

と回転方法をUIViewControllerに設定して、ビューを回転したかどうかを判断したい場合があります。

+1

1年前に知りたかったこと!私はこの問題の全面的な解決策を働かせなければならなかったが、いくつかのコーナーケースをカバーしなかった。頭痛の時...ありがとう! – mtmurdock

2

UIDeviceOrientationは、デバイスの物理的な向きを指し、UIInterfaceOrientationは、ユーザーインターフェースの向きを指します。

したがって、スーパービューのサイズを変更したときにビューのサイズが正しく変更されるように、autoResizeMaskを設定する必要があります。ビューにflexibleWidthとflexibleHeightを設定します。またhttp://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html

をチェック - UIInterfaceOrientationは、それが表示されるビューの向きについて説明しますながら

UIDEVICE orientation

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation] 
+0

上記のコードは正しくありません。デバイス方向をUIInterfaceOrientation変数に割り当てています。 'UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]'か、UIInterfaceOrientation orientation = self.interfaceOrientationでなければなりません。ここでselfはUIViewControllerです。 – mtmurdock