2017-07-31 50 views
1

我正在處理一個照片捕獲應用程序。請求許可解鎖Swift中的屏幕方向

我的應用程序只支持肖像模式,我必須旋轉橫向圖像來旋轉肖像模式。例如,如果要在landscapeRight中捕獲照片,我想將照片向右旋轉90度。

但是,如果用戶設備處於「鎖定屏幕方向」模式下,如果用戶試圖拍攝橫向定位的照片,我無法獲得正確的設備方向值與UIDevice.current.orientation。它總是返回「肖像」值,當然是由於「鎖定屏幕糾正」。

我想請求用戶解鎖屏幕方向的權限,如「此應用程序想要解鎖屏幕方向」消息。是否可以添加我的info.plist添加解鎖屏幕方向的權限請求?如果是的話,我必須在我的info.plist中添加哪些權限?

在此先感謝。

+1

我錯過了一些東西,也許是一個重要的細節。我有兩個圖像處理應用程序,都是所有的方向。今年年初,我發現幾乎任何*小型開發人員*圖像應用程序僅適用於肖像。 (是的,它使我的一天。)我的觀點是 - 這些應用程序*都沒有要求許可*。我的看法是,作爲一個項目屬性,他們將事物設置爲只有肖像。 (我也有這樣的幾個遊戲 - 只有肖像。)屏幕鎖無關緊要,對吧?那麼,爲什麼你想要獲得許可呢? – dfd

+0

@dfd因爲用戶可能會在我的應用程序中以相機模式拍攝風景照片。從邏輯上講,我的應用程序當然只能用於人像模式,但當用戶將設備旋轉到風景時,用戶*會感覺相機正在拍攝風景(但相機仍處於人像模式)。我的問題就在這一點上。我想在將照片顯示給用戶之前自動旋轉拍攝的照片。但如果設備處於鎖定屏幕方向模式,則無法觸及設備的方向模式(lanscapeRight或landscapeLeft)。所以我想讓用戶解鎖設備的方向鎖定。 – kkakkurt

回答

1

我同意你不能改變方向屬性。所有這些屬性(在您的項目頁面中)都是爲了啓用狀態變量和通知,您可以從中爲您的UI的方向設置動畫。因此,一個拙劣的解決方案可能是使用陀螺儀API,並根據此算法來檢測設備旋轉。它基本上涉及構建類似於調平應用程序的邏輯。 https://developer.apple.com/documentation/coremotion/cmmotionmanager