簡體   English   中英

啟用方向鎖定時檢測設備的實際方向(iOS)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM