2015-04-24 65 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

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

相關問題