免责声明:这不是任何问题的重复。我在发布此帖之前已经完成了this question。
通常我们使用设备方向属性或状态栏属性来查找设备的实际方向。但是,当设备上启用 方向锁定 时,我无法获得正确的方向。我总是将方向值设为 人像 ,即使我将设备转为横向模式。
在设备上启用方向锁定时,是否可以找到设备的实际方向。
注意:UIAccelerometer现已弃用。欢迎任何有关CoreMotion的帮助。
答案 0 :(得分:3)
以下是我提出的建议:
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");
}
}
}];