开发者

About the orientation of iPhone

开发者 https://www.devze.com 2023-01-18 00:26 出处:网络
How to get the current orientation of iPhone? I surfed this site, and found two m开发者_如何学Goethods as followings.

How to get the current orientation of iPhone? I surfed this site, and found two m开发者_如何学Goethods as followings.

  • [UIApplication sharedApplication].statusBarOrientation;
  • [[UIDevice currentDevice] orientation];

Which one is the right way to get the current orientation ? I tried two methods under simulator 4.1, but there are some problems for both methods.


Register your class to listen to UIDeviceOrientationDidChangeNotification then handle the device orientation accordingly.

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(deviceRotated:)
name:UIDeviceOrientationDidChangeNotification
object:[UIDevice currentDevice]];

and handle the device's orientation properly:

- (void)deviceRotated: (id) sender{
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
    if (orientation == UIDeviceOrientationFaceUp ||
        orientation == UIDeviceOrientationFaceDown)
    {
        //Device rotated up/down
    }

    if (orientation == UIDeviceOrientationPortraitUpsideDown)
    {
    }
    else if (orientation == UIDeviceOrientationLandscapeLeft)
    {
    }
    else if (orientation == UIDeviceOrientationLandscapeRight)
    {
    }
}


[[UIDevice currentDevice] orientation] gets the current physical orientation of the device. [UIApplication sharedApplication].statusBarOrientation gets the orientation of the UI. If the app ever returns NO to the shouldAutorotateToInterfaceOrientation: method, the two values will not be the same.

0

精彩评论

暂无评论...
验证码 换一张
取 消