//检测屏幕朝向变化
-(void)startDeviceOrientationChangeListener {
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil];
}
-(void)deviceOrientationDidChange {
/*
typedef NS_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
};
*/
UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
NSMutableString *orientationDescription = [[NSMutableString alloc] initWithFormat:@"%ld ", orientation];
switch (orientation) {
case UIDeviceOrientationUnknown:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationUnknown"];
break;
case UIDeviceOrientationPortrait:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationPortrait"];
break;
case UIDeviceOrientationPortraitUpsideDown:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationPortraitUpsideDown"];
break;
case UIDeviceOrientationLandscapeLeft:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationLandscapeLeft"];
break;
case UIDeviceOrientationLandscapeRight:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationLandscapeRight"];
break;
case UIDeviceOrientationFaceUp:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationFaceUp"];
break;
case UIDeviceOrientationFaceDown:
[orientationDescription appendFormat:@"%@", @"UIDeviceOrientationFaceDown"];
break;
}
NSLog(@"%@", orientationDescription);
}
我在模拟器上进行测试时发现:第一次会先打印“UIDeviceOrientationUnknown”,接着立马打印“UIDeviceOrientationPortrait”,间隔只有3毫秒左右(当时并没有改变设备方向)
2016-06-21 00:34:31.782 SensorDemo[599:15448] 0 UIDeviceOrientationUnknown
2016-06-21 00:34:31.785 SensorDemo[599:15448] 1 UIDeviceOrientationPortrait