在预览中删除UIImagePickerController cameraOverlayView

时间:2013-09-15 20:57:14

标签: uiimagepickercontroller

我有一个UIImagePickerController和一个cameraOverlayView,但是当用户拍照时,cameraOverlay视图仍保留在'预览/使用照片/重拍照片视图'中。

有没有办法为第一个摄像机视图定义cameraOverlayView?

2 个答案:

答案 0 :(得分:3)

如果有人需要,只需在此处发布以供将来参考。

我一直有同样的问题,经过一天的研究,经历了大量的追踪和错误,我找到了一种方法,可以从图像预览中删除cameraOverlayView。

当您拍照时," _UIImagePickerControllerUserDidCaptureItem"触发。幸运的是,我们可以通过创建一个带闭包的观察者来利用它。在闭包内部,我们可以将cameraOverlayView设置为nil,从而在进入预览之前删除自定义视图。

这适用于Xcode版本8.1(8B62),使用Swift 3。

我已添加了代码段,供您根据需要使用。

NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "_UIImagePickerControllerUserDidCaptureItem"), object:nil, queue:nil, using: { note in
        self.imagePicker.cameraOverlayView = nil
})

答案 1 :(得分:0)

预览由UIImagePickerController为您处理,并且覆盖始终可见,直到控制器被解除。

我不知道有什么方法可以改变这种行为。