2017-07-31 24 views
1

私は写真キャプチャアプリケーションを開発中です。Swiftで画面の向きをロック解除する許可を求める

私のアプリはポートレートモードのみをサポートしています。私はポートレートモードで回転させるために風景画像を回転させる必要があります。たとえば、写真がlandscapeRightに取り込まれた場合は、写真を90度回転させたいとします。

ユーザデバイスが「画面のロック」モードになっている場合、ユーザーが横長の写真を撮ろうとしている場合、正しいデバイスの向きの値をUIDevice.current.orientationで取得できません。もちろん、 "肖像画"の値を返すのは、 "画面のロックを強制する"ためです。

「このアプリケーションは画面の向きをロックしたい」のようなメッセージで、画面のロックを解除する権限をユーザーに求めています。 info.plistを追加して、画面の向きをロック解除する許可要求を追加することはできますか?はいの場合は、どの許可をinfo.plistに追加する必要がありますか?

ありがとうございます。

+1

私は何か、おそらく重要な詳細が欠落しています。私は2つの画像処理アプリケーションを持っています。今年初め、私は小さな*開発者向けの*画像アプリは肖像画のみで動作することを発見しました。 (ええ、それは私の一日を作った)私のポイントはこれです - これらのアプリケーションのどれも許可を求める*。私の取り組みは、プロジェクトのプロパティとして、物事をポートレートだけにすることです。 (私はこのような少数のゲームも持っています - 肖像画のみ。)スクリーンロックは重要ではありません、そうですか?あなたはなぜ許可を求めたいのですか? – dfd

+0

@dfd私のアプリでは、カメラモードで風景写真を撮ることがあるためです。論理的には私のアプリはポートレートモードでしか動作しませんが、ユーザーがデバイスを横向きに回転させると、カメラは風景を撮っていると感じますが、カメラはポートレートモードです。私の質問はその点です。撮影した写真を自動的に回転させてから、ユーザーに表示します。しかし、私はデバイスの向きモード(lanscapeRightまたはlandscapeLeft)に達することができません。だから私は、ユーザーのデバイスの方向ロックを解除する必要があります。 – kkakkurt

答えて

1

私は向きのプロパティを変更することはできません。これらのプロパティ(プロジェクトページ内のすべて)は、UIの向きをアニメートできる状態変数と通知を有効にすることです。だから、おそらく、ハッキーな解決策は、ジャイロスコープAPIを使用して見て、それに基づいてデバイスの回転を検出するための小さなアルゴリズムを作ることです。基本的に、レベリングアプリケーションと同様のロジックを構築することになります。 https://developer.apple.com/documentation/coremotion/cmmotionmanager

関連する問題