2017-07-17 13 views
0

私のカメラアプリでは、すべてが完璧に精細な向きで機能します。ユーザーの携帯電話で縦向きのロックが有効になっていないと、すべてが完全に機能します。縦向きのロックをプログラムで無効にする

ただし、ユーザーが縦向きのロックを有効にして横向きに記録すると、ビデオはポートレートモードで記録されますが、すべてがビデオの内側に横たわっています。

縦向きロックが有効になっているか、これを回避する方法はありますか?ありがとうございました。

enter image description here

答えて

0

。あなたがそうのようにカメラを使用しているビューコントローラにshouldAutorotate関数をオーバーライドすることができます

override func shouldAutorotate() -> Bool { return true }

それが彼らのデバイスの設定を保持しますので、それらがカメラで終了したら、次にあなたが再びfalseに設定することができます。これが最善の方法であるかどうかはわかりませんが、方法です。

これを回避するには、デバイスの向きを確認するだけです。 UIの視覚的な方向が自動回転しない場合でも(https://developer.apple.com/documentation/uikit/uidevice/1620053-orientation)、デバイスはデバイスの物理的な向きを検出します。

if (UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft || UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft) { ...override autorotate to true }

:だから、次は、Appleのドキュメント(https://developer.apple.com/documentation/uikit/uideviceorientation)現在の向きは、それらのうちのいずれかであればあなただけ確認することができ、それらを知ること

enum UIDeviceOrientation : Int { case Unknown case Portrait // Device oriented vertically, home button on the bottom case PortraitUpsideDown // Device oriented vertically, home button on the top case LandscapeLeft // Device oriented horizontally, home button on the right case LandscapeRight // Device oriented horizontally, home button on the left case FaceUp // Device oriented flat, face up case FaceDown // Device oriented flat, face down }

ごとに、可能なデバイスの向きを示していますこれらはあなたの問題を解決するかもしれません。

0

あなたは、このメソッドを使用して縦向きロックを無効にすることができます物事のカップルがあります

- (NSUInteger)lockorientation 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

私はこれをどのように実装しますか。予想される解散を教えてくれる? –

関連する問題