完全な警告:
Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'
オンラインで入手する:
[self orientationChanged:interfaceOrientation];
これは方法です:
- (void)orientationChanged:(UIInterfaceOrientation)interfaceOrientation
この警告がどこから来ているのか本当に理解できません。
UIDeviceOrientation
はデバイスの物理的な向きを示し、UIInterfaceOrientation
はユーザーインターフェイスの向きを示します。メソッドを呼び出すとき
[self orientationChanged:interfaceOrientation];
方法によれば、UIDeviceOrientation
を使用する必要がある場合は、おそらくUIInterfaceOrientation
を渡します。
この点を少し拡張すると、UIDeviceOrientation
はUIDevice
クラスのプロパティであり、次のような値が考えられます。
UIDeviceOrientationUnknown
-決定できません
UIDeviceOrientationPortrait
-ホームボタンを下向き
UIDeviceOrientationPortraitUpsideDown
-ホームボタンを上向き
UIDeviceOrientationLandscapeLeft
-右向きのホームボタン
UIDeviceOrientationLandscapeRight
-左向きのホームボタン
UIDeviceOrientationFaceUp
-デバイスはフラットで、画面が上を向いています
UIDeviceOrientationFaceDown
-デバイスはフラットで、画面が下を向いています
UIInterfaceOrientation
に関しては、それはUIApplication
のプロパティであり、ステータスバーの方向に対応する4つの可能性のみが含まれています。
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
UIDeviceOrientation
を取得するには、
[[UIDevice currentDevice] orientation]
UIInterfaceOrientation
を取得するには、
[[UIApplication sharedApplication] statusBarOrientation]