iOS 使用加速度计获取初始设备方向

iOS Getting initial device orientation with accelerometer

我正在开发 OpenGL ES 游戏,c++ 和 iOS。我希望 canvas 轴始终保持默认纵向方向,并且还能够知道哪个是初始设备方向和所有方向变化。

我遇到的问题是,如果我将 XCode 项目配置为支持 4 个方向:2 个纵向和 2 个横向,那么嵌入 OpenGL canvas 的框架的轴取决于最初的方向。如果我将项目配置为仅支持纵向,则应用程序不会告诉我它是否处于横向。

我想找到一种尽可能以编程方式完成此操作的方法。

1) 在 iOS

中以编程方式了解
        UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if(orientation == UIDeviceOrientationLandscapeLeft)
    landscapeRight = false;
else if(orientation == UIDeviceOrientationLandscapeRight)
else if(orientation == UIDeviceOrientationPortraitUpsideDown)
else if(orientation == UIDeviceOrientationPortrait)
....

2) 对于默认纵向视图

在您的 Xcode 项目的 info.plist

中限制其他方向