0

我正在使用 OpenGL 为 iPad 构建应用程序,但遇到屏幕旋转问题。应用程序本身工作正常并且在所有四个方向上都正确显示,但其他元素仅部分响应设备旋转。

OpenGL 使用变换矩阵处理应用程序的旋转。这一切都很好。默认图像也会以正确的旋转方式显示。

但是,多任务栏没有按应有的方式旋转。它出现在应用程序打开的一侧。因此,如果我打开应用程序,然后双击主页按钮,它位于正确的一侧,但在旋转设备后,它保持在同一侧,直到应用程序关闭并重新打开。当显示此条时,OpenGL 应用程序会旋转以匹配条的位置。

对话框,例如“登录游戏中心”弹出窗口也没有正确旋转。它们似乎以标准的纵向显示。

我不确定是否有任何其他必要的具体细节来识别问题,但非常感谢任何建议。

4

1 回答 1

0

我似乎已经整理了一个解决方案来查看其他线程中的片段。我认为它解决了问题。

我有一个主类,它控制着我的大部分应用程序。它已经注册接收设备轮换通知,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];

我在方向处理函数中添加了几行来手动设置状态栏位置:

-(无效)更新方向{
    if ([[UIDevice currentDevice] 方向] < 5 && [[UIDevice currentDevice] 方向]>0) {
        方向 = [[UIDevice currentDevice] 方向];
        [UIApplication sharedApplication].statusBarOrientation = 方向;
    }
}

条件限制处理程序仅响应横向和纵向方向,而不是面朝上和面朝下。

如果有人有更好的解决方案,我仍然想听听,否则,希望这对其他人有帮助。

于 2011-03-18T21:25:28.743 回答