2016-10-04 9 views
0

写真を開いて画像ビューで画像を変更できるようにするアプリを作っています。私が向きを横長モードにロックするときは、全体的な制約を避けるために、アプリが全体的に画面から離れて好きなものを押して、フォトギャラリーはポートレートモードで開こうとします。この問題を解決するために、私はUIImagePickerController + SupportedOrientationsと呼ばれる新しいクラスを作り、うまくいけばこれを停止するフォトギャラリーを開こうとすると、横向きの方向のロックが機能しません。Swift

extension UIImagePickerController 
{ 
    public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
     return .Landscape 
    } 
    override public func shouldAutorotate() -> Bool { return false } 
} 

を追加しました。今、私はそれをロックせずにアプリを使用するたびに、それは風景モードで開きますが、私はそれをロックした場合、私はそれは絶対に風景モードをサポートし、次のエラー

terminating with uncaught exception of type NSException 
+0

クラッシュするのですか?あなたのデバッガで警告を発するだけですか? –

+0

フォトギャラリーを開こうとすると、フルクラッシュが発生します。@AKMSalehSultan – zach2161

+0

時間をください。すぐにお会いしましょう。 –

答えて

-1

を取得します。この拡張子をどこかに入れてください。 UIImagePickerController + SupportedOrientations.swiftという名前のファイル

extension UIImagePickerController 
 
{ 
 
    public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
 
     return .Landscape 
 
    } 
 
}

のベストはこれがアプリの風景の中にすべてのUIImagePickerControllersになります。あなたはまた、唯一のサブクラス景観可能な、それをサブクラス化するには、このメソッドをオーバーライドすることができます

class LandscapePickerController: UIImagePickerController 
 
{ 
 
    public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
 
     return .Landscape 
 
    } 
 
}

最後に

、ランドスケープの向きをサポートするために、あなたは戻ることができ

return [.Landscape]

+0

-1このソリューションは、以下に提供されている回答のコピーです。Swift 2.0のランドスケープモードでUIImagePickerControllerを使用する(http://stackoverflow.com/questions/33058691/use-uiimagepickercontroller-in-landscape-mode-in-swift-2 -0) – David

関連する問題