[UIDevice currentDevice].orientation == UIDeviceOrientationPortrait
获取设备的方向方法1、UIDeviceOrientation是设备的方向,只能读取不能设置,
typedefNS_ENUM(NSInteger,UIDeviceOrientation){ UIDeviceOrientationUnknown, UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom UIDeviceOrientationPortraitUpsideDown, // Device oriented vertically, home button on the top UIDeviceOrientationLandscapeLeft, // Device oriented horizontally, home button on the right UIDeviceOrientationLandscapeRight, // Device oriented horizontally, home button on the left UIDeviceOrientationFaceUp, // Device oriented flat, face up UIDeviceOrientationFaceDown // Device oriented flat, face down };
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
设置软件方向2UIInterfaceOrientation是软件的方向,可以读取可以设置。
typedefNS_ENUM(NSInteger,UIInterfaceOrientation){ UIInterfaceOrientationPortrait =UIDeviceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown=UIDeviceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft =UIDeviceOrientationLandscapeRight, UIInterfaceOrientationLandscapeRight =UIDeviceOrientationLandscapeLeft };
注意:UIInterfaceOrientation的横屏的左边和右边跟UIDeviceOrientation刚好相反。
2、如果需要获取设备方向变化(UIDeviceOrientation)的消息的话,需要注册UIDeviceOrientationDidChangeNotification通知。
在注册通知时,需要先调用UIDevice的beginGeneratingDeviceOrientationNotifications方法
[[UIDevicecurrentDevice]beginGeneratingDeviceOrientationNotifications]; [notificationCenter addObserver:selfselector:@selector(deviceOrientationDidChange)name:UIDeviceOrientationDidChangeNotificationobject:nil];同时,在结束时,需要移除改通知消息
[notificationCenter removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];