UIInterfaceOrientation问题

时间:2013-06-20 04:50:34

标签: ios uiinterfaceorientation

我希望我的iPhone应用程序全局运行,就好像只允许UIInterfaceOrientationPortrait一样。 但与此同时,我希望它能够了解物理方向,以便以特定方式作出反应,仅在显示器的有限区域内。 我怎么能得到这个?

我使用UIViewController的self.interfaceOrientation iVar做了一些测试,但这似乎不起作用,因为这个变量不会改变。

1 个答案:

答案 0 :(得分:1)

首先,做[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]。然后注册UIDeviceOrientationDidChangeNotification。收到通知后,请检查[UIDevice currentDevice].orientation以了解设备的物理方向。

您一定要阅读这些API的文档,因为它包含一些重要的警告。

另请注意,设备方向以UIDeviceOrientation的形式返回,与UIInterfaceOrientation不同。请记住UIInterfaceOrientation文档中的这些信息:

  

您可以在statusBarOrientation属性和setStatusBarOrientation:animated:方法中使用这些常量。请注意,UIDeviceOrientationLandscapeRight已分配给UIInterfaceOrientationLandscapeLeft,而UIDeviceOrientationLandscapeLeft已分配给UIInterfaceOrientationLandscapeRight;原因是旋转设备需要沿相反方向旋转内容。