一切都很好,方法“shouldAutorotateToInterfaceOrientation”被调用为标准方向,如肖像,肖像画,landscaperight和landscapeleft。然而,我注意到,当iphone面朝下或面朝上躺在桌子上时,它不会被调用。在我的代码[UIDevice currentDevice] .orientation返回一些值,如5和6,但正如我所说,旋转事件方法不会被调用那些方向。我错过了什么吗?
答案 0 :(得分:3)
为什么会这样?如果用户将设备平放在桌子上,界面方向应如何反应?设备无法确定哪个方向是“正确”方向。
设备方向≠界面方向
答案 1 :(得分:2)
interfaceOrientation应用程序用户的方向 旋转后的界面。可能的值描述于 UIInterfaceOrientation。
typedef enum {
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;
如您所见,方向是界面方向,而不是设备方向。
您可能需要查看:Reading the accelerometer