Skip to content

Instantly share code, notes, and snippets.

@cyndibaby905
Created April 23, 2014 02:05
Show Gist options
  • Save cyndibaby905/11200578 to your computer and use it in GitHub Desktop.
Save cyndibaby905/11200578 to your computer and use it in GitHub Desktop.
Get device orientation using Accelerometer
CMMotionManager *_motionManager = [[CMMotionManager alloc] init];
_motionManager.accelerometerUpdateInterval = 0.1;
__block UIDeviceOrientation orientationLast = UIDeviceOrientationPortrait;
[_motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
UIDeviceOrientation orientationNew;
if (accelerometerData.acceleration.x >= 0.75) {
orientationNew = UIDeviceOrientationLandscapeRight;
}
else if (accelerometerData.acceleration.x <= -0.75) {
orientationNew = UIDeviceOrientationLandscapeLeft;
}
else if (accelerometerData.acceleration.y <= -0.75) {
orientationNew = UIDeviceOrientationPortrait;
}
else if (accelerometerData.acceleration.y >= 0.75) {
orientationNew = UIDeviceOrientationPortraitUpsideDown;
}
else {
// Consider same as last time
return;
}
if (orientationNew == orientationLast)
return;
orientationLast = orientationNew;
}];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment