これは、UIDeviceOrientationLandscapeRight が UIInterfaceOrientationLandscapeLeft に割り当てられ、UIDeviceOrientationLandscapeLeft が UIInterfaceOrientationLandscapeRight に割り当てられているために発生する可能性があります。
これは、デバイスを回転させるにはコンテンツを反対方向に回転させる必要があるためです。
iOS 8 以降では、UIInterfaceOrientation 定数を使用したり、インターフェイスの向きに関してアプリを記述したりするのではなく、UITraitCollection および UITraitEnvironment API を使用し、これらの API で使用されているクラス プロパティのサイズを設定する必要があります。
とにかく、この方法でオリエンテーションを行うことは私にとってはうまくいきました。
var orientation = UIApplication.SharedApplication.StatusBarOrientation;
switch (orientation)
{
case UIInterfaceOrientation.PortraitUpsideDown:
// The device is in portrait mode but upside down, with the device held upright and the home button at the top.
case UIInterfaceOrientation.Portrait:
// The device is in portrait mode, with the device held upright and the home button on the bottom.
case UIInterfaceOrientation.LandscapeLeft:
// The device is in landscape mode, with the device held upright and the home button on the left side.
case UIInterfaceOrientation.LandscapeRight:
// The device is in landscape mode, with the device held upright and the home button on the right side.
case UIInterfaceOrientation.Unknown
// The orientation of the device cannot be determined.
}
それも考慮してください
ただし、アプリに回転可能なウィンドウ コンテンツがある場合は、この方法を使用してステータス バーの向きを勝手に設定しないでください。このメソッドで設定されたステータス バーの向きは、デバイスの向きが変わっても変わりません。