您的位置:首页 > 移动开发 > IOS开发

iOS获取设备方向(锁屏状态下通用)

2016-05-19 10:08 501 查看
1.设备没有锁屏(不能旋转屏幕)的状态下:

UIDevice *device = [UIDevice currentDevice];

但是当设备不能旋转的时候,此方法就不能获取到设备方向了。

2. 当设备不能旋转的时候,我们可以通过CMMotionManager类来计算设备的方向:

@property(nonatomic,strong)CMMotionManager
*cmmotionManager;

if([self.cmmotionManager
isDeviceMotionAvailable]) {

[self.cmmotionManager
startAccelerometerUpdatesToQueue:[NSOperationQueue
currentQueue] withHandler:^(CMAccelerometerData *
_Nullable accelerometerData,
NSError *
_Nullable error) {

AVCaptureVideoOrientation orientationNew;

if (acceleration.x >=
0.75) {//home button left

orientationNew = UIDeviceOrientationLandscapeRight;

}

else
if (acceleration.x <= -0.75) {//home button right

orientationNew = UIDeviceOrientationLandscapeLeft;

}

else
if (acceleration.y <= -0.75) {

orientationNew = UIDeviceOrientationPortrait;

}

else
if (acceleration.y >=
0.75) {

orientationNew = UIDeviceOrientationPortraitUpsideDown;

}

else {

// Consider same as last time

return;

}

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: