如何在iPhone中以编程方式检查设备的方向?

可能重复:
iPhone方向

如何在iPhone中的任何时间停止编程检查设备的方向?

谢谢。

这里是macrosUIDeviceOrientationIsLandscapeUIDeviceOrientationIsPortrait

所以宁愿单独检查你可以这样做…

  if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) { // code for landscape orientation } 

要么

  if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)) { // code for Portrait orientation } 

尝试一下。

 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; if ( ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait) ) { // do something for Portrait mode } else if(([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight) || ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationLandscapeLeft)) { // do something for Landscape mode } 

也试试:

 UIInterfaceOrientationIsPortrait(orientation) 

 UIInterfaceOrientationIsLandscape(orientation) 

-[UIViewController interfaceOrientation]

但是,可以从当前的界面方向中检索deviceOrientation:

[[UIDevice currentDevice] orientation]

请阅读文档以获得更多信息,但您需要做更多的事情来完成这项工作。

您也可以检查function

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) { //do for portrait } else { //do for Landscape } return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); } 

你应该放置[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 在你的AppDelegate didFinishLaunchingWithOptions

然后,在你的应用程序的任何地方,你可以得到当前的方向:

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

和testing方向:

UIInterfaceOrientationIsPortrait(orientation) UIInterfaceOrientationIsLandscape(orientation)