在预览中移除UIImagePickerController相机覆盖视图

4

我有一个UIImagePickerController和一个cameraOverlayView,但是当用户拍照后,在“预览/使用照片/重新拍照”视图中,cameraOverlay视图仍然存在。

是否有一种方法只为第一个相机视图定义cameraOverlayView?

2个回答

7

如果有人需要,我在这里发布一下以备将来参考。

我遇到了相同的问题,在经过一天的研究并进行了大量的尝试后,我找到了一种方法,可以从图像预览中移除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
})

0

预览由UIImagePickerController为您处理,覆盖层一直可见,直到控制器被解除。

我不知道有任何改变此行为的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接