为什么在旋转5,6时不应该调用AutorotateToInterfaceOrientation?

时间:2011-09-26 13:02:16

标签: iphone objective-c rotation

一切都很好,方法“shouldAutorotateToInterfaceOrientation”被调用为标准方向,如肖像,肖像画,landscaperight和landscapeleft。然而,我注意到,当iphone面朝下或面朝上躺在桌子上时,它不会被调用。在我的代码[UIDevice currentDevice] .orientation返回一些值,如5和6,但正如我所说,旋转事件方法不会被调用那些方向。我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

为什么会这样?如果用户将设备平放在桌子上,界面方向应如何反应?设备无法确定哪个方向是“正确”方向。

设备方向≠界面方向

答案 1 :(得分:2)

  

interfaceOrientation应用程序用户的方向   旋转后的界面。可能的值描述于   UIInterfaceOrientation。

typedef enum {
   UIInterfaceOrientationPortrait           = UIDeviceOrientationPortrait,
   UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
   UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,
   UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

如您所见,方向是界面方向,而不是设备方向。

您可能需要查看:Reading the accelerometer