免责声明:这不是任何问题的重复。我已经浏览过 this question在此发布之前。
通常我们使用设备方向属性或状态栏属性来找出设备的实际方向。但当设备上启用方向锁定时,我无法获得正确的方向。即使我将设备切换为横向模式,我始终将方向值设置为纵向。
当设备上启用方向锁定时,是否有办法找出设备的实际方向。
注意:UIAccelerometer 现已弃用。欢迎任何有关 CoreMotion 的帮助。
最佳答案
这是我的想法:
CMMotionManager *cm=[[CMMotionManager alloc] init];
cm.deviceMotionUpdateInterval=0.2f;
[cm startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMDeviceMotion *data, NSError *error) {
if(fabs(data.gravity.x)>fabs(data.gravity.y)){
NSLog(@"LANSCAPE");
if(data.gravity.x>=0){
NSLog(@"LEFT");
}
else{
NSLog(@"RIGHT");
}
}
else{
if(data.gravity.y>=0){
NSLog(@"DOWN");
}
else{
NSLog(@"UP");
}
}
}];
关于ios - 启用方向锁定时检测设备的实际方向 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27718123/