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;
}
}];
}
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;
}
}];
}
相关文章推荐
- iOS9的新特性以及适配方案
- 《Motion Design for iOS》(十九)
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS js调webview的alert 为什么弹出来点击不了
- iOS——NSThread
- iOS开发小技巧--实现将图片保存到本地相册
- iOS 文件夹不作备份处理
- iOS基于MVC的项目重构总结
- 8行代码教你搞定iOS导航控制器全屏滑动返回效果
- iOS跳转麦克风
- iOS学习之—— NSUserDefaults
- iOS学习之——NSSet、NSMutableSet
- iOS微博项目(六)实现左滑,大图,用户资料页
- 【代码笔记】iOS-把<br!>换成\n
- IOS 整体框架类图
- [绍棠] ios常见问题解决
- iOS Keychain (钥匙串)简单封装
- IOS json解析的四种方式
- iOS动画篇:自定义动画
- iOS各种证书配置总结