[英]Detect actual orientation of the device when the Orientation lock is enabled (iOS)
免責聲明:這不是任何問題的重復。我在這里發帖之前已經解決了這個問題。
通常我們使用設備方向屬性或狀態欄屬性來找出設備的實際方向。 但是當在設備上啟用方向鎖定時,我沒有得到正確的方向。 即使我將設備轉換為橫向模式,我也總是將方向值設為縱向。
在設備上啟用方向鎖定時,有沒有辦法找出設備的實際方向。
注意:現在不推薦使用 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");
}
}
}];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.