我想检测状态栏在当前视图上的位置,以确定要执行的Segue。我知道执行此操作的首选方法是确定设备方向,但是这种方法对我来说有两个问题:

1.)如果设备与垂直或水平的角度距离不够远,则说明没有检测到设备方向,也不会发生碰撞

2.)在某些条件下,我将“锁定”显示方向,以便即使物理设备的方向为横向,屏幕也将被锁定为纵向,并且我将要执行我创建的纵向序列。

问题是“[UIApplication sharedApplication] .statusBarOrientation =”没有返回状态栏的实际方向。有没有简便的方法可以检测到这一点?否则,我将不得不编写一堆凌乱的代码来跟踪此情况。

最佳答案

您是否尝试过:[[UIDevice currentDevice] orientation]

注意:

根据您的应用程序的设计,可能有必要调用[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]。如果这样做,请确保在某个时候调用[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]

如果这还不足以满足您的目的,我想您必须手动检查加速度计。看看:Handling Motion Events,以获取有关如何完成操作的更多信息。

关于ios - 确定状态栏方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13111457/

10-14 22:34