2016-10-04 5 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

가로 모드는 절대 지원합니다. 이 확장 어딘가에 넣어.

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

이 앱 풍경의 모든 UIImagePickerControllers하게

UIImagePickerController를 + SupportedOrientations.swift

라는 이름의 파일에있는 제일. 또한 단지 서브 클래스 풍경 - 수 그것을 서브 클래스 화해하기 위해이 메소드를 오버라이드 (override) 할 수 있습니다

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