iOS 获取屏幕的朝向

//检测屏幕朝向变化
-(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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值