【问题标题】:iPad OpenGL Screen Rotation Problems (Multitasking bar and Popups not Rotating)iPad OpenGL 屏幕旋转问题(多任务栏和弹出窗口不旋转)
【发布时间】:2011-03-18 20:23:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 嗯,这些听起来像是“已知”的操作系统错误...我在非 OpenGL 应用程序中遇到了其中一些,尤其是在使用本机视频播放器时,在检查系统方向与现实。

标签: ios ipad opengl-es screen-rotation


【解决方案1】:

我似乎已经在其他一些线程中组合了一个解决方案来查看 sn-ps。我认为它解决了问题。

我有一个主类来控制我的大部分应用程序。它已经注册接收这样的设备轮换通知:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多