【问题标题】:Disabled blur view when pop to camera UIImagePickerViewController弹出到相机 UIImagePickerViewController 时禁用模糊视图
【发布时间】:2015-12-22 17:54:28
【问题描述】:

我在我的应用程序中以相机模式显示 UIImagePickerController 模式。当用户拍照时,我将在 UIImagePickerController 上推送一个带有拍摄图像的新视图控制器。像这样——

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
    let myViewController = MyViewController(nibName: "MyViewController", bundle: NSBundle.mainBundle(), andImageData: UIImageJPEGRepresentation(image, 1.0))
    picker.pushViewController(myViewController, animated: true)
}

myViewController 在其 UIImageView 中显示图像。

但是当我从 myViewController 弹出时,我看到一个模糊的图像覆盖和禁用的控件。当我弹回来时,我真的想看到相机预览。

我已经确认没有需要移除的camerOverlayView。我现在让它工作的方法是将 sourceType 设置为 PhotoLibrary 并返回到 Camera ,从而强制重新初始化相机。但我想知道为什么会出现这种模糊的视图以及如何完全避免它。

【问题讨论】:

    标签: ios swift uiimagepickercontroller ios-camera


    【解决方案1】:

    因为您使用的是UIImagePickerController

    根据文档;

    UIImagePickerController 类管理可定制的,
    用于拍摄照片和电影的系统提供的用户界面
    支持的设备,以及选择保存的图像和电影以供使用
    在您的应用程序中。图像选择器控制器管理用户交互和 将这些交互的结果传递给委托对象。

    如您所见,上面写着“系统提供的”,所以当您使用它拍照时,实际上您使用的是系统相机。打开相机应用程序,然后去图书馆并返回。你会再次看到模糊。可能 iPhone 需要一些时间来重新激活相机,并且看到冻结的视图不利于用户体验。

    【讨论】:

    • 谢谢凯末尔。我可以接受它需要一点时间来重新激活。问题是它永远处于那种模糊模式。
    【解决方案2】:

    所以看起来问题是我在使用默认相机控件(showsCameraControls = true)时在 UIImagePickerController 上推送了一个新的视图控制器。这是不允许的。拍摄图像时必须关闭选择器控制器。从文档 -

    如果您将此属性设置为 false 并提供您自己的自定义 控件,您可以在关闭图像之前拍摄多张照片 选择器界面。但是,如果您将此属性设置为 true,您的 委托人必须在用户拍摄后关闭图像选择器界面 一张图片或取消操作。

    我现在使用 cameraOverlayView 并在其上添加自定义控件。我可以毫无问题地拍照、推送新视图并弹回相机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      相关资源
      最近更新 更多