尝试打开照片库Swift时,横向锁定不起作用

时间:2016-10-04 18:54:23

标签: swift swift2 landscape sigabrt nsexception

我正在创建一个应用程序,允许用户打开照片库来更改图像视图中的图片。每当我将方向锁定为横向模式时,为了避免严重限制并且应用程序整体推动我喜欢屏幕上的所有内容,照片库会尝试以纵向模式打开。为了解决这个问题,我创建了一个名为UIImagePickerController + SupportedOrientations的新类,并添加了

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

希望能阻止这一点。现在它在横向模式下打开,每当我使用应用程序而不锁定它,但如果我锁定它我会收到以下错误

terminating with uncaught exception of type NSException

1 个答案:

答案 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]