我有一个 UIImagePickerController 和一个 cameraOverlayView,但是当用户拍照时,cameraOverlay 视图会保留在“预览/使用照片/重拍照片视图”中。
有没有办法为第一个相机视图定义一个 cameraOverlayView ?
我有一个 UIImagePickerController 和一个 cameraOverlayView,但是当用户拍照时,cameraOverlay 视图会保留在“预览/使用照片/重拍照片视图”中。
有没有办法为第一个相机视图定义一个 cameraOverlayView ?
如果有人需要,请在此处发布以供将来参考。
我一直有同样的问题,经过一天的研究,有很多线索和错误,我找到了一种从图像预览中删除 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
})
预览由 UIImagePickerController 为您处理,并且在关闭控制器之前,叠加层始终可见。
我不知道有什么方法可以改变这种行为。