iPad方向返回未知值

时间:2010-11-10 15:05:12

标签: ipad

我使用此代码:

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

获取iPad方向,但在使用OpenGL渲染时返回UIDeviceOrientationUnknown。当我播放电影或显示UIViews时,它会返回正确的值。你知道我怎么能得到正确的方向?我不想使用加速度计,因为我想知道设备何时锁定方向。

谢谢!

3 个答案:

答案 0 :(得分:18)

在某些情况下,加速度计无法准确读取方向,例如设备保持平坦时。您仍然可以使用以下方式获取当前方向:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];

答案 1 :(得分:3)

在iOS 13中,statusBarOrientation已被弃用。

let orientation = UIApplication.shared.windows.first?.windowScene?.interfaceOrientation

答案 2 :(得分:0)

如果我添加[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];即使在OpenGL渲染模式下,方向也是正确的。 UIDeviceOrientationUnknown方向有时会返回,但只是很短的时间。