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

Posted

技术标签:

【中文标题】尝试打开照片库Swift时横向锁定不起作用【英文标题】:Landscape orientation lock not working when trying to open photo gallery Swift 【发布时间】:2016-10-04 18:54:23 【问题描述】:

我正在制作一个应用程序,允许用户打开照片库以更改图像视图中的图片。每当我将方向锁定为横向模式时,为了避免严重的限制和应用程序将我喜欢的所有东西从屏幕上推开,照片库都会尝试以纵向模式打开。为了解决这个问题,我创建了一个名为 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

【问题讨论】:

它会导致崩溃吗?还是只是调试器中的警告? 每当我尝试打开照片库@AKMSalehSultan 时,都会导致完全崩溃 好的,给一个小时。让我尽快回复您。 【参考方案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]

【讨论】:

-1 此解决方案是提供的答案的副本:Use UIImagePickerController in Landscape mode in Swift 2.0 (***.com/questions/33058691/…)

以上是关于尝试打开照片库Swift时横向锁定不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从swift库中选择照片不起作用

Swift:将 Facebook JSON 中的名称、照片和封面设置为变量不起作用。

SpriteKit横向不起作用

权限在 Swift 中的 iOS 10 之前不起作用

后置摄像头在 Swift 中不起作用

Swift 4 NSPredicate 日期格式不起作用