iOS通过加速计获得初始设备方向 我在OpenGL ES游戏,C++和iOS中工作。我希望画布轴始终保持默认的portait方向,并且能够知道哪个是初始设备方向以及所有方向的更改

iOS通过加速计获得初始设备方向 我在OpenGL ES游戏,C++和iOS中工作。我希望画布轴始终保持默认的portait方向,并且能够知道哪个是初始设备方向以及所有方向的更改,ios,iphone,ipad,opengl-es,Ios,Iphone,Ipad,Opengl Es,我的问题是,如果我将XCode项目配置为支持4个方向:2个肖像和2个风景,那么嵌入OpenGL画布的框架的轴取决于初始方向。如果我将项目配置为仅支持纵向,那么应用程序不会告诉我它是否处于横向 我想找到一种方法,尽可能多地通过编程实现这一点。1)在iOS中通过编程实现 UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; if(orientation == UIDeviceOrientat

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

我想找到一种方法,尽可能多地通过编程实现这一点。

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中的其他方向,但如果我将项目info.plist方向设置为纵向,则[[UIDevice currentDevice]方向始终是纵向的。如果在应用程序外部,则它有另一个方向。你说的“应用程序外部”是什么意思?你是说应用程序处于后台状态吗?你到底需要什么?是的,我是说背景状态。我想在info.plist中设置为只支持纵向(因此宽度和高度是固定的,它简化了opengl实现)。我在opengl代码中内部实现了旋转,但是如果我在info.plist中修复了肖像,我就无法检索初始方向。您使用哪种方法来获取初始方向?它在视图控制器的didLoad中不起作用。您应该在VIEWDIDISPENCE和更高版本中使用它。