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

相關問題