4

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

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

4

2 回答 2

7

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

我一直有同样的问题,经过一天的研究,有很多线索和错误,我找到了一种从图像预览中删除 cameraOverlayView 的方法。

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

这适用于带有 Swift 3 的 Xcode 版本 8.1 (8B62)。

我已经添加了代码片段供您在需要时使用。

NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "_UIImagePickerControllerUserDidCaptureItem"), object:nil, queue:nil, using: { note in
        self.imagePicker.cameraOverlayView = nil
})
于 2016-12-07T13:14:26.397 回答
0

预览由 UIImagePickerController 为您处理,并且在关闭控制器之前,叠加层始终可见。

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

于 2013-09-15T21:10:21.313 回答