2015-04-24 62 views

回答

0

没有API告诉你方向锁是否打开,但是,你可以推断它。

你需要做的第一件事是用加速度计来确定设备正在举行哪种方式:

CMMotionManager * motionManager = [[CMMotionManager alloc] init]; 
motionManager.accelerometerUpdateInterval = 0.5; 

[motionManager startAccelerometerUpdatesToQueue: [[NSOperationQueue alloc] init] 
            withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { 
             CMAcceleration acceleration = accelerometerData.acceleration; 

             UIDeviceOrientation orientation = fabs(acceleration.y) < fabs(acceleration.x) ? 
             acceleration.x > 0 ? UIDeviceOrientationLandscapeRight : UIDeviceOrientationLandscapeLeft : 
             acceleration.y > 0 ? UIDeviceOrientationPortraitUpsideDown : UIDeviceOrientationPortrait; 

        // Check orientation == [UIDevice currentDevice].orientation 

             }]; 

然后检查你计算的方向是一样的电流UIDeviceOrientation

如果它们不同,那么方向锁定打开。 如果它们相同,则不能认为它是开启或关闭。

+1

50%可能重复,这是对每一次 – RyanR

+0

啊,但如果它不是,它可能没有按”很重要! –

相关问题